0

我无法处理“复选框处理程序”,这是一个问题,我已经追溯到显然在 if-control 函数中发生的问题。如果您尝试以下修改后的代码,您会看到布尔变量“e.parameter.myCheckBox”产生正确的结果,但是基于此变量的 if-branching-off 不起作用。有人看到这里的错误吗?

非常感谢马丁

function ifTest(e) {
  var app = UiApp.createApplication().setTitle('ifTest');
  var panel = app.createVerticalPanel();
  var grid = app.createGrid(3, 3);
  var myCheckBox = app.createCheckBox().setName('myCheckBox').setId('myCheckBox');
  var button =     app.createButton('submit').setId("submit").setWidth("280").setHeight("35");

  grid.setWidget(1, 0, app.createLabel('Check for True').setStyleAttribute("font-size",  "110%"));
  grid.setWidget(1, 1, myCheckBox);
  grid.setWidget(2, 1, button);

  var handler = app.createServerHandler('ifCheck'); 
  var handler = app.createServerClickHandler('ifCheck');
  handler.addCallbackElement(myCheckBox);  
  myCheckBox.setValue(false, false);  

  handler.addCallbackElement(grid);
  button.addClickHandler(handler);

  panel.add(grid);
  app.add(panel);

  ss.show(app);
  return app;
}

function ifCheck(e) {
  var bCBresult = e.parameter.myCheckBox;
  var app = UiApp.getActiveApplication();

  Browser.msgBox(bCBresult);
  if (bCBresult) {    
    Browser.msgBox("bCBresult = true");
  }
  else {
    Browser.msgBox("bCBresult = false");
  };
  return app.close();
}
4

1 回答 1

0

返回的值e.parameter.myCheckBox是字符串,而不是布尔值。(这实际上是所有 e.parameter 值的情况......,它们总是字符串)

所以你的条件是if (bCBresult=='true') {

于 2013-03-06T17:54:23.783 回答