google-apps-script - 使用 "on form submit"时区分形式

标签 google-apps-script eventtrigger google-forms

借助新的 Google 表格,可以将多个表单的回复发送到同一个电子表格。这很方便。

但是,当使用“表单提交”触发器时,似乎无法区分表单。这造成了一个主要问题。

例如,我有一个用户提交以注册邮件列表的表单。我有用户用来提交报告的第二个表单。我有一个脚本,可以获取报告并根据邮件列表收件人的偏好将其发送给他们。我需要将邮件列表和报告中的变量关联起来,以便根据偏好发送报告。我设置了脚本,以便每当提交报告时都会自动发送报告。但是,当提交注册表单时,它会触发脚本并发送电子邮件(使用注册表单中的信息)。

有没有办法告诉 Google 仅在提交特定表单时触发脚本,而不是在提交链接到电子表格的任何表单时触发脚本?

谢谢!

最佳答案

我找到了一种通过onFormSubmit()来区分表单的迂回方法。事实上,虽然表单与电子表格之间存在多对一关系,但表单与工作表之间存在一对一关系。此外,所有表单都会在其唯一的工作表中附加一行作为响应值。该行数据(作为 Range)作为 e 中的值传递,如 e.range。要获取所使用表单的 URL,可以使用 e.range.getSheet().getFormUrl()。如果只是需要区分表单,可以使用e.range.getSheet()

这样,您的 onFormSubmit() 函数中的开关就可以添加为特定(针对每个表单)函数的控制流。

我也有同样的担忧。我希望这仍然有意义,并且为了子孙后代。

TL;DR:e.range.getSheet()

关于google-apps-script - 使用 "on form submit"时区分形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521973/

相关文章:

javascript - 在 GAS 嵌入式环境中通过 Javascript 刷新 HTML 文档

android - 如何为 QuickContactBadge 创建可点击标签

wpf - 使用 MVVM 从事件触发动画

azure - FTP/BlobStorage 触发器到 Azure 函数应用程序/逻辑应用程序

google-apps-script - 使用应用程序脚本将表单提交到电子表格时出错

javascript - 为 'on form submit' 触发器指定表单

javascript - 如何根据使用脚本从上一个问题中选择的日期更新 Google 表单上的多项选择问题

arrays - 将 JSON 数组输出打印到 Google Sheet

google-apps-script - 是否可以删除由松弛 channel 中的谷歌脚本制作的机器人发出的消息?

google-apps-script - 如何在每天结束时记录 Google 表格单元格的内容?