首页 文章

Google Script for Forms:提交后立即编辑表单回复

提问于
浏览
1

假设我有一个只有一个项目的Google表单:一个简短的答案项目 . 一旦我提交表单,我想要一个脚本,以便它更改响应 . 例如,无论用户输入问题,我都希望脚本将其更改为“foo” . 表单回复Google表格也应该显示“foo”作为回复 .

我知道它涉及像 ScriptApp.newTrigger("edit_response").forForm(form).onFormSubmit().create(); 这样的地方 form = FormApp.getActiveForm()edit_response 是一个接收事件 e 的函数 . 但我似乎无法找到一种可以修改表单响应的方法......

1 回答

  • 3

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

    您可以手动设置“表单提交”触发器 . 除非您正在执行诸如使用代码创建新表单并自动分发它们之类的操作,否则无需从代码创建触发器 . 或者让人们在表单上安装附加组件 .

    表格回复总是写在表格中 . 将表单响应数据也写入电子表格是一种选择 . 在写入数据之前,您无法拦截数据 . 但是你可以在写完后立即改变它 .

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

    function myOnFormSubmitFunc(e) {};
    

    “表单提交”触发器可以位于“表单”,“表单”或两者中 . 工作表的“表单提交”对象与“表单”不同 . 例如,使用Sheet On Form Submit对象,您可以直接获取值数组 .

    var arrayOfValues = e.values;
    

    Apps Script Documentation - Sheets Form Submit events

    有一个FormResponse类:

    Apps Script Documentation - FormResponse

    但它无法在表单中编辑现有的表单响应 .

相关问题