以下代码在用户提交表单时运行。检查提交的表单数量(用户只能提交5次)后,该表单会记录在Google表格的服务器端。
function validateForm(form){
if(count>=MAX){
var msg={
title:"Idea limit reached",
body:"You can propose a maximum of "+MAX+" ideas for this theme",
btn:"OK"
}
screenMessage(msg)
}
else{
var msg={
title:"Idea recorded",
body:"You can still submit "+(5-count-1)+" ideas",
btn:"OK"
}
google.script.run.withSuccessHandler(successMessage(msg), resetForm()).recordIdea(form)
count++
}
return false;
}
function resetForm(){
$('#title').val("")
$('#description').val("")
$('input[name="tags"]').val("")
$('.creation-tags').empty()
$('.suggested-tags').empty();
}
我的问题是,当我检查数据库时,输入的信息为空!意思是“ resetForm”函数实际上是在表单提交之前调用的。
是否有一种方法可以确保仅在用户键入的值已成功提交之后才调用resetForm函数?
我试图将函数嵌套在successMessage函数中,但没有得到肯定的结果
答案 0 :(得分:1)
此行代码立即调用resetForm(),而不设置回调函数:
google.script.run.withSuccessHandler(successMessage(msg), resetForm()).recordIdea(form)
它应该像这样:
google.script.run.withSuccessHandler(function(){successMessage(msg), resetForm()}).recordIdea(form)