[英]How to stop Onsubmit in Google forms
在谷歌表格中,我寫了一個驗證檢查,檢查一個字段,如果它超過一個計數,那么我需要停止表單提交並提醒用戶有關錯誤。 我能夠將錯誤文本添加到div但不能停止表單提交。
如何停止表單提交。 我已經嘗試過e.preventDefault()但它沒有用。任何人都可以幫忙。 我附上了在谷歌表單中提交表單事件時調用的代碼。
function onFormSubmit(e) {
Logger.log("test log", "testing");
var timestamp = e.values[0];
var programname = e.values[1];
var center = e.values[2];
var fullname = e.values[3];
var board = e.values[4];
var programtype = e.values[5];
var programobjective = e.values[6];
var calltoaction = e.values[7];
var begindate = e.values[8];
var enddate = e.values[9];
var marketing = e.values[10];
var budget = e.values[11];
var expectedparticipation = e.values[12];
var registrationfee = e.values[13];
var announcement = e.values[14];
var insightannouncement = e.values[15];
var additionallanguage = e.values[16];
var checklist = e.values[17];
var speakerprofile = e.values[18];
var noticeboarditem = e.values[19];
var toAddress = e.values[20];
var programcategory = e.values[21];
var liability = e.values[22];
var datesofannouncement = e.values[23];
var explaination = e.values[24];
var additionalquestion = e.values[25];
var location = e.values[26];
var externalpartners = e.values[27];
var intergenerational = e.values[28];
var announcementlanguage = e.values[29];
// var app = DocumentApp.getUi();
var app = UiApp.getActiveApplication();
Logger.log("test log in checkAnnouncement: " + announcement + " insight " + insightannouncement, "testing");
// var announcement = e.values[14];
//var insightannouncement = e.values[15];
//var toAddress = e.values[20];
//var htmlBody = "Thank you for your <b>Program Package</b> report submitted on <i>";
//var subject = "test subject";
Logger.log(announcement, "testing");
Logger.log(insightannouncement, "testing");
// Logger.log(toAddress, "testing");
announcement = announcement.replace(/(^\s*)|(\s*$)/gi,"");
announcement = announcement.replace(/[ ]{2,}/gi," ");
announcement = announcement.replace(/\n /,"\n");
insightannouncement = insightannouncement.replace(/(^\s*)|(\s*$)/gi,"");
insightannouncement = insightannouncement.replace(/[ ]{2,}/gi," ");
insightannouncement = insightannouncement.replace(/\n /,"\n");
if(announcement.split(' ').length > 3)
{
app.getElementById('entry_15').setText("*Announcement should be less than 30 words").setStyleAttribute("color", "#F00");
e.preventDefault();
}
else if(insightannouncement.split(' ').length > 5)
{
app.getElementById('entry_32').setText("*insightAnnouncement should be less than 50 words").setStyleAttribute("color", "#F00");
e.preventDefault();
}
}
Google表單的數據驗證僅限於提交后,例如調用onFormSubmission
觸發器時。 在那個時間點,沒有能力與表單UI進行交互。
觸發器函數接收的事件是一個FormResponse對象,它不包含preventDefault()
方法。
假設上述答案是正確的,並且此事件在提交后觸發,它們在技術上是正確的,您無法停止提交,但您可以從表單的集合中刪除響應(如果我已經理解,則應刪除它正確的部分API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.