谷歌表单的onsubmit(Google Forms onsubmit)

2019-08-18 03:37发布

怎样才能引用的默认“提交”按钮,表格的“的onsubmit”触发另一个动作链接? 谢谢。

例如,具有的onsubmit,

Logger.log('do something');

Answer 1:

一个没有。 该表服务不允许超过该产品的任何编程控制。 有一个开放的问题,在这个问题上跟踪这一一般性的主题。 星为“投票”,并获得更新。

但是,你不会丢失。 在电子表格中收到你的表单回复,你可以用一个可安装触发脚本添加到火“在提交表单”。 从那里,你可以做很多事情来提交的数据,包括你想记录......但没有到窗体本身。

这些引用解释的触发器和事件。

  • 使用容器的具体安装的触发器
  • 了解事件


Answer 2:

而不是添加脚本到电子表格接收从表单回应(如Mogsdad的答案), 我添加了获取由表单提交按钮触发的脚本。

第1步:首先创建一个谷歌表

第2步:然后从菜单中,单击工具- >脚本编辑器

第3步:给你的函数名称类似onSubmit()

步骤4:编写一些代码,通过点击运行按钮,发送电子邮件这样的,然后测试

function onSubmit() {
  MailApp.sendEmail("fred@email.com,alice@email.com",
                    "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步:在脚本编辑器的菜单,单击运行 ,或单击工具栏上的播放按钮来测试你的代码(例如确保你的电子邮件)

第6步:在脚本编辑器的菜单上,单击资源- >当前项目的触发器

第7步:选择设置活动 From form On form submit

第8步:然后从窗体编辑器的菜单上,单击工具- >脚本管理 ,并确保选中脚本

步骤9:尝试的形式。 单击窗体的提交按钮后,您应该收到一封电子邮件。



Answer 3:

这是一个古老的答案。

目前(2014年1月),有两种方法的onsubmit。 一种是简单地做一个功能的onsubmit()据称(它不工作对我来说...)只允许当前提交用户许可的情况下有限的一组动作。 您无法访问自己的电子邮件提交,例如,或修改底层形式为下提交。

再有就是上提交,您可以添加和附加到任何功能,做任何你想要在你自己的权限触发。 作为触发的截图在回答上面添加,除了它的第一列显示方法,你形成脚本看起来相同,下一栏写着:从表格,并在第三列选择:在提交。

通常,你的方法将收到一个事件e,谁的e.values是相同的保存在电子表格中的值。 所以

功能formSubmitted(E){...



Answer 4:

似乎有其触发代码的两个应用:(1)的形式,(2)链接到表格回复的电子表格。

(1)没有太多一个可以从窗体programmaticly做作为事件不会被发送到功能,如通过Mogsdad和JohnB如上所述。 一个也可以,例如,发送电子邮件“在形式提交”或“开开”,但没有事件对象,一个甚至不能记录有关文件或提交数量或行也不任何东西。

(2)然而,如果电子表格被链接到表格的响应,则触发可以在电子表格中,其中,一个可以访问该事件并且因此行,列,和其它数据进行设定。

从链接响应谷歌电子表格:

  • 第1步:工具>脚本编辑器
  • 步骤2:写一些代码,例如:

Code.gs:

function onSpreadsheetSubmit(e) {
     var row = e.range.getRow();
     MailApp.sendEmail("me@example.com",
                "Your subject, rows: "+ row,
                "A new application has been submitted on row: "+
                row,
                {name:"From your friendly spreadsheet"});
}
  • 步骤3:运行>运行功能> onSpreadsheetSubmit(或|>图标)
    • 该事件可能不具有实际的行,因为测试是不是一个真正的提交相关。
  • 第4步:您会被要求选择一个用户,并验证自己的身份
  • 第5步:编辑>当前项目的触发器(或类似时钟的图标)
  • 第6步:添加新的触发
  • 步骤7:onSpreadsheetSubmit | 从电子表格| 在表单提交
  • 步骤8:验证及保存(或反向)
  • 步骤9:测试通过等待(或执行)一个真正的表单提交
  • 第10步:检查您的电子邮件

欲了解更多信息: https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events



Answer 5:

上述JohnB的HOWTO非常出色。 更新(NOV 2017):

  • 第2步:“脚本编辑器...”在形式的垂直“......”汉堡菜单右上方
  • 步骤6:“项目触发器”在(时钟状图标)被发现(上面显示的第二图标)。
  • 第7步:单击“添加新触发器”,忽略了“不myFunctions”的警告。
  • 第8步:似乎并不存在,可能没有必要,对我的作品没有。

许多的上述步骤需要由表单所有者验证/接受。



文章来源: Google Forms onsubmit