如何在谷歌表单中停止Onsubmit
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 Forms的数据验证仅限于提交后,例如调用onFormSubmission
触发器时。在这个时间点上,没有能力与Form UI交互。
触发器函数接收的Event是一个FormResponse对象,它不包含preventDefault()
方法。
参考文献
- 使用容器特定的可安装触发器
- 了解事件
- 类FormResponse
假设以上答案正确,并且此事件触发提交后,它们在技术上是正确的,您不能停止提交,但您可以从表单的集合中删除响应(如果我正确理解API的这一部分,则应将其删除。
相关文章:
- 在浏览器检查表单之前运行javascript onsubmit
- '这'表单中的关键字onsubmit调用
- 将onsubmit属性添加到表单并提交
- 在firefox中,在向表单添加onsubmit属性后,不会提交表单
- 尽管使用了Onsubmit确认,HTML表单仍然设置PHP$_POST[]
- HTML和JavaScript.onSubmit从不阻止发布表单
- 制作表单's onsubmit仅适用于特定提交
- onsubmit 事件不适用于异步表单提交
- 表单 onsubmit() 不起作用
- onsubmit不调用Chrome中的js函数,而是直接提交表单
- 如何使用虚拟键盘在 Opera Mobile 中为简单表单触发 onsubmit() 事件
- JavaScript onSubmit 表单处理
- 表单提交和 Ajax 同时使用 onsubmit
- Javascript 输入到 HTML 表单 onSubmit 与 # 操作到 PHP $_GET(同一文件上的所有代码
- 我的表单 onSubmit = “” 语法有点模糊
- ReactJS的onSubmit表单不起作用
- 不能在safari上的onsubmit表单事件中使用javascript加载图像
- 如何使用jquery删除现有的onsubmit表单
- onSubmit表单从另一个文件夹调用外部javascript文件
- 停止没有'返回false;'的onSubmit表单