バリデーターに問題があります。検証は正常に機能します。問題は、検証が完了していないときに、データを追加する必要があることをユーザーに知らせるメッセージが表示されることです。
これがコードです
function showDialog()
{
var aplicacion=UiApp.createApplication();
aplicacion.setTitle("Informacion Clientes");
aplicacion.setHeight(300);
aplicacion.setWidth(500);
var grid=aplicacion.createGrid(8, 3);
//var panelVertical=aplicacion.createVerticalPanel();
//Codigo Cliente
var labelCodigo=aplicacion.createLabel("Codigo");
var TextBCodigo=aplicacion.createTextBox();
var msg1=aplicacion.createLabel("Ingrese un codigo").setId("msg1").setVisible(false).setStyleAttribute("color", "#F00");
TextBCodigo.setName("Codigo").setId("Codigo");
grid.setWidget(0, 0, labelCodigo);
grid.setWidget(0, 1, TextBCodigo);
grid.setWidget(0, 2, msg1);
//Nombre Cliente
var labelNombre=aplicacion.createLabel("Nombre");
var TextBNombre=aplicacion.createTextBox();
var msg2=aplicacion.createLabel("Ingrese un codigo").setId("msg2").setVisible(false).setStyleAttribute("color", "#F00");
TextBCodigo.setName("Nombre").setId("Nombre");
grid.setWidget(1, 0, labelNombre);
grid.setWidget(1, 1, TextBNombre);
grid.setWidget(1, 2, msg2);
//Direccion Cliente
var labelDireccion=aplicacion.createLabel("Direccion");
var TextBDireccion=aplicacion.createTextBox();
var msg3=aplicacion.createLabel("Ingrese una direccion").setId("msg3").setVisible(false).setStyleAttribute("color", "#F00");
TextBCodigo.setName("Direccion").setId("Direccion");
grid.setWidget(2, 0, labelDireccion);
grid.setWidget(2, 1, TextBDireccion);
grid.setWidget(2, 2, msg3);
//Telefono Cliente
var labelTelefono=aplicacion.createLabel("Telefono");
var TextBTelefono=aplicacion.createTextBox();
TextBCodigo.setName("Telefono").setId("Telefono");
grid.setWidget(3, 0, labelTelefono);
grid.setWidget(3, 1, TextBTelefono);
//Celular Cliente
var labelCelular=aplicacion.createLabel("Celular");
var TextBCelular=aplicacion.createTextBox();
TextBCodigo.setName("Celular").setId("Celular");
grid.setWidget(4, 0, labelCelular);
grid.setWidget(4, 1, TextBCelular);
//Contacto Cliente
var labelContacto=aplicacion.createLabel("Contacto");
var TextBContacto=aplicacion.createTextBox();
TextBCodigo.setName("Contacto").setId("Contacto");
grid.setWidget(5, 0, labelContacto);
grid.setWidget(5, 1, TextBContacto);
//Zona de Clientes
var comboZona = aplicacion.createListBox().setId('comboZona').setName('Zona');
var labelZona= aplicacion.createLabel("Zona");
agregarZonaCombo(comboZona);
grid.setWidget(6, 0, labelZona);
grid.setWidget(6, 1, comboZona);
var panel = aplicacion.createVerticalPanel();
panel.add(grid);
//El boton que le va a dar submit
var button=aplicacion.createButton('Submit').setId("button");
var labelHola=aplicacion.createLabel("Hello").setVisible(true).setId("hola");
var handler=aplicacion.createServerHandler("submitData").validateLength(TextBCodigo, 1, 5)
.validateLength(TextBNombre, 3, 20)
.validateLength(TextBDireccion, 5, 30);
handler.addCallbackElement(TextBCodigo)
.addCallbackElement(TextBNombre)
.addCallbackElement(TextBDireccion)
.addCallbackElement(TextBTelefono)
.addCallbackElement(TextBCelular)
.addCallbackElement(TextBContacto);
button.addClickHandler(handler);
panel.add(button);
panel.add(labelHola);
aplicacion.add(panel);
var doc=SpreadsheetApp.getActive();
doc.show(aplicacion);
}
function submitData(e)
{
var app=UiApp.getActiveApplication();
submitPage_(app);
return app;
}
私の関数 submitData は、ラベルを非表示にする機能です。しかし、true のプロパティを setvisible する新しい関数を呼び出すためのイベントの名前がどれかわかりません。