回答
一个没有。表单服务不允许对产品进行任何编程控制。问题跟踪器上有一个open issue用于此一般主题。将它打到“投票”并接收更新。
但是,你并没有失去。在接收表单回复的电子表格中,您可以添加带有可安装触发器的脚本以激活“表单提交”。从那里,你可以对提交的数据做很多事情,包括记录,只要你愿意......但没有任何形式本身。
这些引用解释的触发器和事件。
更新 - 现在有一个Forms服务,它可以对许多表单的元素进行编程控制。 – Mogsdad
引用的问题已修复。 –
这是一个古老的答案。
目前(2014年1月)onSubmit有两种方式。一种是简单地做一个函数onSubmit(),据推测(它不适用于我...)只允许在当前提交用户的许可下进行一组有限的操作。例如,您不能访问他提交的电子邮件,或者修改下一个提交的基础表单。
然后是提交的触发器,您可以添加并附加到任何函数,并根据您自己的权限执行任何您想要的操作。看起来与上面答案中的触发器添加屏幕截图相同,只不过它的第一列显示了您的表单脚本中的方法,下一列显示为:From-Form和您选择的第三列:On Submit。
通常情况下,您的方法将收到一个事件e,谁的e.values与电子表格中保存的值相同。所以
功能formSubmitted(E){...
而不是添加脚本到电子表格从形式接收响应(如Mogsdad的答案),我添加了得到由触发脚本的表单提交按钮。
第1步:首先创建一个谷歌表单
步骤2:然后从菜单中,单击工具 - >脚本编辑器
步骤3:给你之类的函数onSubmit()
步骤4名:编写一些代码,通过点击运行按钮
function onSubmit() {
MailApp.sendEmail("[email protected],[email protected]",
"Subject",
"A new application has been submitted.\n\n" +
"Here is the link to all Applications:\n" +
"https://docs.google.com/spreadsheets/x/1-fdasjhFAKEfdaahfkhsa/",
{name:"From Name"});
}
第5步发送电子邮件这样的,然后进行测试:脚本编辑器的菜单上,单击运行,或单击播放按钮在工具栏上,以测试你的鳕鱼e(例如确保你的电子邮件)
步骤6:脚本编辑器的菜单上,单击资源 - >当前项目的触发器
步骤7:选择设置活动From form
On form submit
第8步:从表单编辑器的菜单然后,单击工具 - >脚本管理,并确保你的脚本选择
步骤9:尝试一下形式。点击表单的提交按钮后,您应该收到一封电子邮件。上述
假设**我添加了一个由Form的提交按钮触发的脚本**不正确,您的答案使用与Mogsdad答案中相同的可安装触发器......您只是将它嵌入到表单容器中,但它只是更改一点都没有。在发布第一个答案时,不能在脚本中嵌入脚本。 –
JohnB的HOWTO非常出色。更新(NOV 2017):
- 第2步:“脚本编辑器...”是
- 第6步形式的垂直“......”汉堡菜单右上角:‘项目触发器’中找到(时钟状图标)(上面显示的第二个图标)。
- 第7步:单击“添加新触发器”,忽略了“不myFunctions”的警告。
- 步骤8:似乎并不存在,可能没有必要,对我的作品没有。
上述许多步骤都要求表单所有者进行验证/接受。
似乎有两个触发代码的应用程序:(1)表单和(2)电子表格链接到表单响应。
(1)如上面的Mogsdad和JohnB所述,没有太多的人可以通过程序从表单中进行编程,因为事件没有发送到函数。例如,可以发送一封电子邮件“On form submit”或“On open”,但没有事件对象,甚至不能记录数字或行,也不能记录任何有关文档或提交的内容。 (2)然而,如果电子表格链接到表单的响应,则可以在电子表格上设置触发器,其中可以访问事件以及行,列和其他数据。
从链接响应谷歌电子表格:
- 步骤1:工具>脚本编辑器
- 步骤2:写一些代码,例如:
Code.gs:
function onSpreadsheetSubmit(e) {
var row = e.range.getRow();
MailApp.sendEmail("[email protected]",
"Your subject, rows: "+ row,
"A new application has been submitted on row: "+
row,
{name:"From your friendly spreadsheet"});
}
- 第3步:运行>运行功能> onSpre adsheetSubmit(或|>图标)
- 该事件可能没有实际行,因为该测试与实际提交没有关联。
- 第4步:您会被要求选择一个用户,并验证自己
- 第5步:编辑>当前项目的触发器(或类似时钟的图标)
- 6步:添加新的触发
- 第7步:onSpreadsheetSubmit |从电子表格|通过等待(或执行)一个真实的表单提交
- 第10步测试:检查您的电子邮件
更多关于表单提交
- 1. 设置Google表单以提交刷新
- 2. 在Google Analytics中跟踪表单提交
- 3. 提交表单后google地图刷新
- 4. Google Apps脚本 - 拒绝表单提交
- 5. 提交表单后提交表单
- 6. 在Drupal中提交表单提交的Google Adwords转换
- 7. 提交表单提交前的Google地址解析
- 8. 表单提交时的Google脚本:提交后立即编辑表单响应
- 9. 未提交表单提交
- 10. Symfony2:提交表单提交
- 11. AngularJS提交表单提交
- 12. 如何将Google表单提交分成单独的表单?
- 13. 触发表单提交以及提交表单提交
- 14. 提交表单
- 15. 提交表单
- 16. 表单提交
- 17. 表单提交
- 18. 表单提交
- 19. 提交表单
- 20. 表单提交
- 21. 提交表单
- 22. 表单提交
- 23. 提交表单
- 24. 在表单提交中插入外部Google表单中的行
- 25. Google Apps脚本初始表单提交v。表单编辑
- 26. 使用CURL将表单提交到Google表单
- 27. 提交与项目标签不同的值,Google表单(Google Script)
- 28. Spring Roo单表单多表单提交数值提交ID
- 29. 表单提交successProperty
- 30. 提交HTML表单
你能否详细说明你的问题。这还不够清楚。当有人提交表单时你是否想要运行一个函数?如果是这样,那么你可以调用函数onSubmit() – Srik