null
;
<p>這是我的html檔:</p>
; <頭> <基本目標=“_top”> <風格> … </風格> </頭> <正文> <p>指示器</p> <輸入類型=“數字” name=“指示符” id="indic";值=“”分鐘=“1”最大值=“32”> <p>普魯夫</p> <輸入類型=“文字”; name=“preuve” id="preuve"> <br> <輸入類型=“按鈕” value=“Ajouter” onclick=“ajouter()”> <span class=“annuler” onclick=“google.script.host.close()”>Annuler <腳本> 函數 ajouter() { const 輸入 = document.querySelectorAll('#indic, #preuve'); 讓 tab = [google.script.run.withSuccessHandler(data ==> {alert(“preuve ajoutée”)}).creeID()]; // 價值恢復 for(輸入的常數輸入){ tab.push(input.value); } // Si tous les champs sont vides if (tab.join('') == '') { Alert('Le Formulaire est Vide!'); 返回; } // 維德萊斯冠軍 input.forEach(input => input.value = ''); // 煎餅 google.script.run.ajouterLigne(選項卡); } </腳本> </正文> </html></pre> <p>與 JavaScript 程式碼:</p>function ajouterLigne(tab) { const PREUVES = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“PREUVES”); 控制台.log(選項卡) PREUVES.appendRow(tab); } 函數 creeID() { const SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“PREUVES”); 讓lastRow = SHEET.getLastRow(); 讓lastIdRange = SHEET.getRange(lastRow, 1); 讓lastId = lastIdRange.getValue(); 讓新的Id; if (lastId == "ID") { 新ID = 1; } 別的 { 新 ID = 最後 ID 1; }; 返回(新ID) }</pre></p>
P粉9304480302023-09-06 09:30:00
對於您的腳本,google.script.run.creeID()
不傳回任何值。我認為這就是您當前問題的原因。從也許我應該像這裡所說的那樣使用.withSuccessHandler(),但我不知道如何使用。
,如下使用withSuccessHandler()
怎麼樣?
在這種情況下,請如下修改 Javascript 的 ajouter()
。
function ajouter() { const inputs = document.querySelectorAll('input[type="text"]'); google.script.run.withSuccessHandler(tab => { tab = [tab]; for (const input of inputs) { tab.push(input.value); } if (tab.join('') == '') { alert('Le formulaire est vide !'); return; } inputs.forEach(input => input.value = ''); google.script.run.ajouterLigne(tab); }).creeID(); }
tab
的值,並將 tab
的值和輸入的值附加到電子表格中。 李>