Javascript 谷歌应用程序脚本[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

我正在尝试创建一个GUI,用户可以在其中输入当天的作业。提交时,表单会将数据发送到日历和电子表格

应用程序脚本告诉我“createServerClickHandler”已被弃用。还有其他的选择吗

我的密码有什么问题吗

//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中的参数。