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 のプロパティを setvisible する新しい関数を呼び出すためのイベントの名前がどれかわかりません。

4

0 に答える 0