我今天早上創(chuàng)建了一個問題表單,因為我想為自己查看事件塊。然而,這個過程對我來說意想不到。我的描述如下:我正在使用以下代碼記錄onFormSubmit事件:function testFormSubmission(e) { var lock=LockService.getUserLock(); try{ if(lock.tryLock(30000)) { var ss=SpreadsheetApp.getActive(); var sh=ss.getSheetByName('LogSheet'); var tA=[Utilities.formatDate(new Date(), Session.getScriptTimeZone(),"d/M/yyyy HH:mm:ss")]; tA=tA.concat(e.values); tA.splice(tA.length-1,1,e.triggerUid,e.range.rowStart,e.range.columnEnd,JSON.stringify(e.values)); sh.appendRow(tA); lock.releaseLock(); } } catch (e){throw("Couldn\'t get lock for 30 seconds");return;};} 我的電子表格中有兩張圖片如下:在e.values中實際上只有兩列,一個是日期,一個是問題的答案,即“綠色”或“藍色”??瞻琢衼碜杂谖覐娜齻€問題開始并收集電子郵件的事實,但為了簡單起見我決定刪除其中兩個,因為我自己生成了提交。無論如何,在C列中沒有綠色或藍色的響應(yīng)就不應(yīng)該存在。 J列很簡單JSON.stringify(e.values),似乎暗示e的值不正確......我想?是/否所以我的問題是日志表中不需要的附加行是從哪里來的?我更新了我的標題問題,因為我認為我沒有多次提交,否則我希望在表單響應(yīng)1表中有多行。對于您的信息,LogSheet中的列H是rowStart,因此很容易找出表單響應(yīng)1中的哪一行相關(guān)聯(lián)。
3 回答

叮當貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
我認為您的代碼證明某些觸發(fā)器是虛假的和不需要的,因此Google不應(yīng)該生成它們。我在類似問題上向Google提交了一個反饋項目。
在我不需要的觸發(fā)器中,我只得到e.range.getRow()來確定哪一行發(fā)生了變化,然后轉(zhuǎn)到該行進行所需的計算。在我的情況下,該行包含所有虛假觸發(fā)器的正確信息(可能是因為第一個正確記錄了電子表格中的數(shù)據(jù))。
你的代碼是一個很好的后盾來防止它,但我有太多的形式和觸發(fā)器來掩蓋。將此代碼放在所有這些地方將是一件痛苦的事。讓我們希望谷歌盡快解決這個問題,我們不會再看到任何虛假的觸發(fā)因素。

不負相思意
TA貢獻1777條經(jīng)驗 獲得超10個贊
我們在這個問題上已經(jīng)看到了幾個問題,因此我決定將自己構(gòu)建成一個簡單的形式。一般來說,我不使用Google表單,因為標準的html表單作為webapps更加靈活。但我希望為那些不喜歡使用webapp路由的用戶找到問題的解決方法。
- 3 回答
- 0 關(guān)注
- 614 瀏覽
添加回答
舉報
0/150
提交
取消