如何在提交表单后重置表单

问题描述 投票:0回答:1

当用户提交表单时,将运行以下代码。在检查提交的表单数量(用户只能提交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函数中嵌套函数,但没有正面结果

javascript html5 forms google-apps-script
1个回答
1
投票

这行代码立即调用resetForm(),而不是设置回调函数:

google.script.run.withSuccessHandler(successMessage(msg), resetForm()).recordIdea(form)

它应该如下所示:

google.script.run.withSuccessHandler(function(){successMessage(msg), resetForm()}).recordIdea(form)
© www.soinside.com 2019 - 2024. All rights reserved.