1

我对验证器有问题。验证工作正常,问题是当验证未完成时,我希望出现一条消息,告诉用户您必须添加数据。

这是代码

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属性的事件名称是什么。

4

0 回答 0