【发布时间】:2019-10-10 16:50:01
【问题描述】:
我有一个链接到谷歌表格的谷歌表单。
当我提交实际表单时,会触发 onFormSubmit 并且我的日志显示“e.source Spreadsheet”
我还使用此链接 (How can I test a trigger function in GAS?) 中的模拟 onFormSubmit 代码进行调试,并且一切工作正常。
突然我收到错误“e.source undefined”,但是当我使用模拟的 onFormSubmit 代码时,e.values 工作正常。
是什么导致了这个突然的错误,特别是因为它之前似乎在完全相同的情况下运行良好?
TIA
【问题讨论】:
-
您可能在电子表格中使用他的onFormSubmit 而不是在表单中使用onFormSubmit。
-
非常感谢,我怎么知道这两个中的哪一个被解雇了?因为即使我提交了实际表单并触发了 onFormSubmit(e),我的日志也显示“e.source is Spreadsheet”并且模拟事件 test_onFormSubmit() 之前工作正常,所以我不确定是什么导致它突然报错“e.source undefined”
-
实际上,正如您在我的回答中所指出的那样,它们都有一个源参数,我通过使用
Logger.log(JSON.stringify(e));找到了该参数。问题不在于哪个正在触发,而在于您正在查看哪个。如果您在电子表格中并且已经为该项目安装了触发器,则电子表格正在响应表单提交。但是,您也可以使用表单的脚本编辑器为表单设置触发器。所以真正的问题是你在哪里创建了触发器。 -
您的代码在电子表格脚本编辑器中吗?
-
我建议,如果您不确定设置了哪个触发器,请使用Installable trigger,它将具体说明它是哪种触发器,它来自哪里以及什么它运行。