设置参数查询对象的问题

时间:2012-06-20 16:40:30

标签: google-apps-script

为什么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');
}

2 个答案:

答案 0 :(得分:2)

添加

return app; 

在respondToSubmit函数结束时

答案 1 :(得分:0)

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

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