Javascript 谷歌应用程序脚本[createServerClickHandler]
我正在尝试创建一个GUI,用户可以在其中输入当天的作业。提交时,表单会将数据发送到日历和电子表格 应用程序脚本告诉我“createServerClickHandler”已被弃用。还有其他的选择吗 我的密码有什么问题吗Javascript 谷歌应用程序脚本[createServerClickHandler],javascript,google-apps-script,Javascript,Google Apps Script,我正在尝试创建一个GUI,用户可以在其中输入当天的作业。提交时,表单会将数据发送到日历和电子表格 应用程序脚本告诉我“createServerClickHandler”已被弃用。还有其他的选择吗 我的密码有什么问题吗 //Create the GUI form function doGet() { var app = UiApp.createApplication().setTitle('Form and Calendar Events'); //Create a penel whi
//Create the GUI form
function doGet() {
var app = UiApp.createApplication().setTitle('Form and Calendar Events');
//Create a penel which holds all the form elelemnts
var panel = app.createVerticalPanel().setId('panel');
//Create the form elelemnts
var startDateLabel = app.createLabel('Homework Start Date:');
var startDate = app.createDateBox().setId('startDate');
var endDateLabel = app.createLabel('Homework End Date:');
var endDate = app.createDateBox().setId('endDate');
var hwTitleLabel = app.createLabel('Homework title:');
var hwTitle = app.createTextBox().setName('hwTitle').setId('hwTitle');
var hwDetailLabel = app.createLabel('Homework Details:');
var hwDetails = app.createTextArea()
.setSize('200', '100').setId('hwDetail').setName('hwDetail');
var btn = app.createButton('Submit Homework');
//Create handler which will execute 'Submit Homework(e)' on clicking the button
var handler = app.createServerClickHandler('Submit Homework');
handler.addCallbackElement(panel);
//Add this handler to the button
btn.addClickHandler(handler);
//Add all the elemnts to the panel
panel.add(startDateLabel)
.add(startDate)
.add(endDateLabel)
.add(endDate)
.add(hwTitleLabel)
.add(hwTitle)
.add(hwDetailLabel)
.add(hwDetails)
.add(btn);
//Add this panel to the application
app.add(panel);
//return the application
return app;
}
function createEvents(e){
//Get the active application
var app = UiApp.getActiveApplication();
try{
//get the entries;
var startDate = e.parameter.startDate;
var endDate = e.parameter.endDate;
var hwTitle = e.parameter.hwTitle;
var hwDetails = e.parameter.hwDetails;
//Get the calendar
var cal = CalendarApp.getCalendarsByName('Paul Lim')[0];//Change the calendar name
var startDate = startDate;
var endDate = endDate;
//Create the events
cal.createEvent(hwTitle, startDate, endDate,{description:hwDetail});
//Log the entries in a spreadsheet
var ss = SpreadsheetApp.openById('1PTSsvjsvb-UVuJ_z9WoLGVZ01YigjLQ5nCi7ujU4Gek');//Change the spreadhseet key to yours
var sheet = ss.getSheets()[0];
sheet.getRange(sheet.getLastRow()+1, 1, 1, 5).setValues([[new Date(), endDate, hwTitle, hwDetails]]);
//Show the confirmation message
app.add(app.createLabel('Homework created successfully'));
//make the form panel invisible
app.getElementById('panel').setVisible(false);
return app;
}
//If an error occurs, show it on the panel
catch(e){
app.add(app.createLabel('Error occurred: '+e));
return app;
}
}
改用
createServerHandler
。。。为了避免此类问题,我建议您使用脚本编辑器中的自动完成功能:如果您键入“create”并点击controlspace,您将看到所有可用的方法,包括正在浏览的不推荐的方法
代码中还有另一个问题:您忘记为日期小部件设置名称,它们在服务器处理程序函数中不会返回任何值 嗨,谢谢你的回复。我将其更改为下面的
//Create handler,单击按钮var handler=app.createServerHandler('Submit')将执行'Submit(e)';handler.addCallbackElement(面板)//将此处理程序添加到按钮btn.addClickHandler(处理程序)代码>但是,它会显示“未找到脚本函数:提交”。脚本中的函数名为“createEvents”,将其用作createServerHandler中的参数。