Javascript 验证表单以防止表单提交

Javascript 验证表单以防止表单提交,javascript,jquery,ajax,forms,jquery-validate,Javascript,Jquery,Ajax,Forms,Jquery Validate,我正在使用asp.NETMVC5并尝试在提交时验证表单。在我添加以下代码行以使用ajax调用验证表单之前,一切都正常 $('#signupform').validate({ submitHandler: function (form) { $.ajax({ type: 'POST', data: JSON.stringify({ type: "WhatsNew", code: $('#Prim

我正在使用asp.NETMVC5并尝试在提交时验证表单。在我添加以下代码行以使用ajax调用验证表单之前,一切都正常

    $('#signupform').validate({
    submitHandler: function (form) {            
        $.ajax({
            type: 'POST',
            data: JSON.stringify({ type: "WhatsNew", code: $('#PrimaryCode').val() }),
            url: '@Url.Action("CheckCode", "Home")',
            dataType: 'json',
            contentType: 'application/json'
        })
        .done(function (response) {
            if (response == 'success') {

                alert('success');
            }
            else {
                alert('failed');
            }
        });
        return false; // required to block normal submit since you used ajax
    }
});

上面的代码只是阻止表单的提交

您通过
返回false阻止提交,以便ajax验证表单,但表单在成功验证后不会提交

.done()中添加表单提交触发器

可能的走查:

  • 在提交表单之前,在.done()内;确保从表单中删除/取消绑定验证
  • 请点击此链接:

我试着放置$('signupform').submit();在成功块内部,但仍然没有表单提交。您是否使用
不引人注目的验证
脚本?如果是这样,它已经调用了
.validate()
方法,因此您不能再次调用它。。。它只是被忽略了。
if (response == 'success') {    
    //  since validation is success, submit form here (e.g. YourForm.submit())
}