0

clienthandlers を使用して、2 つのテキスト ボックスが両方とも空であるか、または両方に値が含まれているがどちらかが含まれていないかどうかを判断することは可能ですか?

現時点では、サーバー ハンドラーを使用してこの状態をテストしていますが、速度を上げるためにクライアント ハンドラーを使用したいと考えています。

if ((textbox1 == '' && textbox2 == '') || (textbox1 != '' && textbox2 != ''))
  //do something
else
  //display error 'both boxes must either be empty or contain a value

乾杯デイブ

いくつかのコード例:

function genObsReport() {
 var myapp = UiApp.createApplication().setTitle('Report');   
 var dateFrom = myapp.createDateBox().setId("dateFrom");  
 var dateTo = myapp.createDateBox().setId("dateTo");   

 var mygrid = myapp.createGrid(2, 2); 
 mygrid.setWidget(0, 0, myapp.createLabel('Date from'));
 mygrid.setWidget(0, 1, dateFrom);
 mygrid.setWidget(1, 0, myapp.createLabel('Date to'));
 mygrid.setWidget(1, 1, dateTo);

 var errors = myapp.createLabel('Error').setId('errors').setVisible(false);  
 var mybutton = myapp.createButton('Create Report');

 var mypanel = myapp.createVerticalPanel();     
 mypanel.add(mygrid);
 mypanel.add(mybutton);

 mypanel.add(errors);
 myapp.add(mypanel);  

 var handler = myapp.createServerHandler("change");
 handler.addCallbackElement(mygrid);  
 mybutton.addClickHandler(handler);

 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 spreadsheet.show(myapp);  
}

function change(eventInfo) {
 var app = UiApp.getActiveApplication();    
 var dateFrom = eventInfo.parameter.dateFrom;
 var dateTo = eventInfo.parameter.dateTo;

 // check the dates
 if ((dateFrom == '' && dateTo == '') || (dateFrom != '' && dateTo != '')) {
    //do something
 } else {
   //show errors
   app.getElementById('errors').setVisible(true);
   app.getElementById('dateFrom').setStyleAttributes({background: "red", color: "black"});
   app.getElementById('dateTo').setStyleAttributes({background: "red", color: "black"});
 } 
}
4

1 に答える 1