我试图在表单的formSubmit
触发器上执行一个简单的脚本:
function onFormSubmit(event) {
Logger.log(event);
var d = event.response.getItemResponses()[0].getResponse();
...
}
每次触发事件时,我都会收到:
[14-11-20 09:10:50:315 CET] FormApp.getActiveForm() [0,126 Sekunden]
[14-11-20 09:10:50:403 CET] FormApp.getActiveForm() [0,085 Sekunden]
[14-11-20 09:10:50:411 CET] Ausführung wird gestartet
[14-11-20 09:10:50:418 CET] Logger.log([{authMode=FULL}, []]) [0 Sekunden]
[14-11-20 09:10:50:422 CET] Ausführung fehlgeschlagen: TypeError: Methode "getItemResponses" von undefined kann nicht aufgerufen werden. (Zeile 5, Datei "Code") (0.003 Sekunden Laufzeit insgesamt)
脚本绑定到我的表单,触发器设置为"表单提交"
我的错在哪里?
答案 0 :(得分:1)
无法重现您的问题。
在具有针对" onFormSubmit"的触发器设置的表单上尝试此代码。能够获得变量d中的第一个值。
function onFormSubmit(event) {
Logger.log(event);
var d = event.response.getItemResponses()[0].getResponse();
Logger.log(d);
}
这是我的执行记录:
[14-11-20 10:37:57:103 PST] FormApp.getActiveForm() [0.078 seconds]
[14-11-20 10:37:57:250 PST] FormApp.getActiveForm() [0.079 seconds]
[14-11-20 10:37:57:312 PST] Starting execution
[14-11-20 10:37:57:316 PST] Logger.log([{response=FormResponse, source=Form, authMode=FULL}, []]) [0 seconds]
[14-11-20 10:37:57:331 PST] FormResponse.getItemResponses() [0.014 seconds]
[14-11-20 10:37:57:334 PST] (class).getResponse() [0 seconds]
[14-11-20 10:37:57:334 PST] Logger.log([[----Value here----], []]) [0 seconds]
[14-11-20 10:37:57:335 PST] Execution succeeded [0.019 seconds total runtime]
答案 1 :(得分:0)
截至2020年6月,onFormSubmit触发器不会返回FormResponse对象。
它实际上返回一个包含以下内容的Google工作表表单提交事件:
authMode
ScriptApp.AuthMode枚举中的值。例如完整
namedValues
一个对象,其中包含表单提交中的问题名称和值。例如
{
'First Name': ['Jane'],
'Timestamp': ['6/7/2015 20:54:13'],
'Last Name': ['Doe']
}
范围 一个Range对象,代表已编辑的单元格或单元格范围。
triggerUid
产生此事件的触发器的ID。例如4034124084959907503
值
排列值的顺序与电子表格中显示的顺序相同。例如['2015/05/04 15:00','amin@example.com','Bob','27','Bill', '28','Susan','25']
ref:https://developers.google.com/apps-script/guides/triggers/events