回答
一個沒有。表單服務不允許對產品進行任何編程控制。問題跟蹤器上有一個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