0

为什么app.getElementById('myTextBox').setValue('default')工作showDialog()但没有工作respondToSubmit(e)

function showDialog() {
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();

  var textBox = app.createTextBox();
  textBox.setName('myTextBox').setId('myTextBox');
  app.getElementById('myTextBox').setValue('default');

  var button = app.createButton(Modify');
  panel.add(textBox);
  panel.add(button);

  var clickHandler = app.createServerClickHandler("respondToSubmit");
  button.addClickHandler(clickHandler);
  clickHandler.addCallbackElement(panel);

  app.add(panel);
  var doc = SpreadsheetApp.getActive();
  doc.show(app);
}

function respondToSubmit(e) {
  var app = UiApp.getActiveApplication();
  app.getElementById('myTextBox').setText('Modifed');
}
4

2 回答 2

2

添加

return app; 

在您的 respondToSubmit 函数结束时

于 2012-06-21T04:31:36.310 回答
0

在一种情况下您使用 setText(),在另一种情况下您使用 setValue()……您没有注意到吗?

此外,当您在创建不需要使用的元素的同一函数中时,getElementById()您可以只使用textBox.setValue(),因为 textBox 是保存元素的变量 -getElementById仅用于从另一个函数中调用元素。

于 2012-06-20T16:46:47.607 回答