0
我正在尝试编写一个小型Google Apps脚本,以帮助用户导航并使用Google电子表格。他们可以填写一个小表格。除其他外,它将把它们带到一个特定的表格。Google Apps脚本ElementCallback:“遇到错误:”参数“未定义。”
但是,窗体的回调似乎没有工作。我真的不知道为什么。我从适用于我的教程中解除了ServerClickHandler/ElementCallBack代码(http://www.youtube.com/watch?v=5VmEPo6Rkq4)。我修剪了脚本并尝试使用不同的小部件和面板。似乎没有任何工作。这可能是我无法看到的一些愚蠢的东西。
当我单击此脚本创建的表单中的提交按钮时,出现以下错误: “遇到错误:”参数“未定义。”
在我的绳索结束。已经调试了3个小时。 (新手程序员 - 请原谅我的无能)
非常感谢您的帮助。
function createIncidentDialog() {
var app = UiApp.createApplication().setTitle('Incident');
var panel = app.createVerticalPanel();
var grid = app.createGrid(3,2).setId('submissionGrid');
var shortNameLabel = app.createLabel('Incident Code');
var shortNameTextBox = app.createTextBox().setName('shortName').setId('shortName');
var regionLabel = app.createLabel('Select Geographic Region');
var radio1 = app.createRadioButton('group1', 'North').setName('north').setId('north');
var radio2 = app.createRadioButton('group1', 'Central').setName('central').setId('central');
var radio3 = app.createRadioButton('group1', 'South').setName('south').setId('south');
var regionPicker = app.createVerticalPanel().add(radio1).add(radio2).add(radio3);
var submitButton = app.createButton('Submit');
var submitLabel = app.createLabel("Click!");
grid.setWidget(0, 0, shortNameLabel)
.setWidget(0, 1, shortNameTextBox)
.setWidget(1, 0, regionLabel)
.setWidget(1, 1, regionPicker)
.setWidget(2, 0, submitButton)
.setWidget(2, 1, submitLabel);
panel.add(grid);
var clickHandler = app.createServerClickHandler("writeIncident");
submitButton.addClickHandler(clickHandler);
clickHandler.addCallbackElement(panel);
// assemble everything in app
app.add(panel);
var doc = SpreadsheetApp.getActive();
// show the app
doc.show(app);
}
// this function responds to submit button
function writeIncident(e) {
var app = UiApp.getActiveApplication();
var shortNameValue = e.parameter.shortName;
if (e,parameter.north == 1){
var regionValue = "North";
}
else if (e.parameter.central == 1){
var regionValue = "Central";
}
else if (e.parameter.south == 1){
var regionValue = "South";
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName(regionValue));
return app.close();
};
感谢您的接收!我还放弃了单选按钮,因为我似乎无法读出它们的值(并且它们也没有实施唯一可行的规则。) – user2709930