在下面的代码中,我定义了一个具有名称和ID的TextBox。按钮处理程序工作正常,但我无法获取在TextBox上输入的值。 msgBox显示出来,但是e.parameter.matchValue显示为undefined

在应用程序的其他部分,我具有相同的逻辑,但具有一个ListBox,并且工作正常。

我在做什么错?

function chooseColumnValueToMatch() {
  var app = UiApp.createApplication().setHeight(150).setWidth(250);
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var columnName = ScriptProperties.getProperty("columnNameToMatch");

  var h1Line = app.createHTML("<h2>Value to match "+columnName+":</h2>");
  var textPara = app.createHTML("<p>Type the VALUE that the <b>"+columnName+"</b> column must match EXACTLY to send the message.</p>");
  var selectionHandler = app.createServerHandler('chooseColumnValueToMatchSelectionHandler');
  var valueInputBox = app.createTextBox()
      .setTitle("Match value for "+columnName)
      .setName("matchValue")
      .setId("matchValue");
  var submitBtn = app.createButton("Submit", selectionHandler);

  app.add(h1Line)
    .add(textPara)
    .add(valueInputBox)
    .add(submitBtn);
  ss.show(app);
}
function chooseColumnValueToMatchSelectionHandler(e){
  var app = UiApp.getActiveApplication();
  var columnName = ScriptProperties.getProperty("columnNameToMatch");

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var msg = e.parameter.matchValue;

  Browser.msgBox("Value to match "+columnName+" column is:", msg, Browser.Buttons.OK);

  return app;
}

最佳答案

看来您忘了在处理程序中添加callbackElement

你可以这样尝试:

selectionHandler.addCallbackElement(valueInputBox)

就在submitBtn定义之后

关于google-apps-script - Google Apps脚本TextBox值未传递到e.parameter.TextBoxName,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12831385/

10-13 00:15