2014-03-27 147 views
0

我似乎無法得到一個表單觸發的腳本運行正確。確切地說,它運行,我可以做一些事情,但我不能訪問應該發送到事件處理函數的表單數據。谷歌表單腳本不工作

我有一個谷歌表的形式引發了非常簡單的腳本:

function OnFormSubmit(e) 
{ 
    try { 
    var timeStamp = e.namedValues["Timestamp"][0]; 
    MailApp.sendEmail(emailAddress, "SCRIPT ENTRY", timeStamp); 
    } catch (x) { 
    var message = x.toString() + "\n[" + Utilities.jsonStringify(e) + "]\n" 
    MailApp.sendEmail(emailAddress, "SCRIPT ERROR", message); 
    } 
} 

我也有一個非常簡單的表格只有一個項目。我設置了觸發器。表單運行並向電子表格添加一行。我收到電子郵件,所以腳本正在觸發。但是,我收到了SCRIPT ERROR電子郵件。該消息是:

TypeError: Cannot read property "Timestamp" from undefined. 
[{"response":"FormResponse","authMode":"FULL"}] 

的「時間戳」的形式響應片確實存在(因爲我相信它總是會;時間戳是一個自動的輸入)。

看來,OnFormSubmit()沒有被傳遞參數,我認爲它應該通過。但是我看到的所有例子都是這樣工作的。

任何幫助?

回答

0

您似乎在表單中使用腳本(可以從對象e中的值中看到)而不是在電子表格中使用腳本。

你應該使用forResponse類documented here,你會看到方法是完全不同的,我不打算在這裏重現文檔,但例如時間戳自帶使用getTimestamp()

相關問題