2016-04-15 97 views
1

假设我有一个只有一个项目的Google表单:简答题项目。只要我提交表单,我想要一个脚本,以便它改变响应。例如,无论用户输入什么问题,我都希望脚本将其更改为“foo”。表单回复Google表格还应显示“foo”作为回复。表单提交时的Google脚本:提交后立即编辑表单响应

我知道它包含类似ScriptApp.newTrigger("edit_response").forForm(form).onFormSubmit().create();的地方,其中form = FormApp.getActiveForm()edit_response是一个函数,它需要事件e。但我似乎无法找到可以修改表单回复的方法...

回答

2

Google表单内部的表单响应可以使用Apps脚本编辑而不是。保存到电子表格的响应可以更改为,但表单中的现有响应不能更改。表单回复可以用代码删除,但不能用任何Apps脚本方法编辑。

您可以手动设置On Form提交触发器。除非您使用代码创建新表单并自动分发,否则无需从代码创建触发器。或让人们在窗体上安装附加组件。

窗体响应总是写入窗体。将表单响应数据写入电子表格也是一种选择。在写入数据之前,您无法截获数据。但你可以它写后立即改变它。

作为On Form Submit触发器的函数可以接收带有Form数据的JavaScript对象。用于分配给对象的变量通常是“e”。但它可以是任何东西。

function myOnFormSubmitFunc(e) {}; 

An On Form提交触发器可以在Form,Sheet或两者中。表单的提交对象与表单不同。例如,使用Sheet On Form Submit对象,可以直接获取一组值。

var arrayOfValues = e.values; 

Apps Script Documentation - Sheets Form Submit events

有一个FormResponse类:

Apps Script Documentation - FormResponse

但不能编辑形式的存在形式的回应。

+0

感谢您的回应!我添加了一个触发器,因为我还需要在某个日期关闭表单。 “写入数据之前无法截获数据”,但这太糟糕了。 – donjar