2016-04-15 100 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