在Form Submit事件对象上给出错误:" TypeError:无法读取属性" 0"来自undefined。"

时间:2016-05-06 20:16:56

标签: google-apps-script google-form

我试图设置一个基本脚本,通过电子邮件提交表单,其中包含(天空中的馅饼)目标,即创建一封电子邮件,发送附加的Outlook日历邀请。这是我的剧本。

function onFormSubmit(e) {
  var userName = e.values[1];
  var userEmail = e.values[2];
  var subject = "Form Submitted";
  var message = "Thank you, " + userName + " for your submission";
  MailApp.sendEmail(userEmail, subject, message)
}

Here's an image of my trigger situation

我得到的错误是:" TypeError:无法读取属性" 0"来自undefined。"

Here's an image of the Execution transcript

在这里,我曾经去过: Google Scripts for Sheets - onEdit and "source"

我保证我没有在编辑器中运行 - 我填写表格并提交。我知道我必须做一些愚蠢的事情,但我无法弄清楚它是什么。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

你的"提交"触发器从绑定到表单的脚本运行,values属性不可用于发送到表单的事件对象。 values属性仅适用于发送到电子表格的事件对象。

答案 1 :(得分:0)

为了访问表单提交属性,您需要将事件对象e视为FormResponse对象。

https://developers.google.com/apps-script/guides/triggers/events#form-submit_1

function onFormSubmit(e) {
  var responses = e.response.getItemResponses();
  for( var i=0; i < responses.length; i++ ) {
    console.log(responses[i].getItem().getTitle() + " : " + responses[i].getResponse());
  }
}