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 に答える