我正在使用ASP.NET MVC,并且在我的捆绑包中有jQuery,jQuery验证,jQuery validate.config,jQuery验证不干扰,不干扰ajax和其他库。我的页面中有一个表单,并且其中包含一些字段。它有一个类型为button的按钮,当用户单击该按钮时,我试图做一些事情,然后做一个$(form).submit(),我希望它被jQuery validate方法中的commithandler拦截,而不是提交它将对我的服务器进行ajax发布。我想使用jQuery.validate方法的原因是我在表单中有很多条件必填字段和其他验证。但是由于某种原因,jQuery验证根本没有执行/执行,并且表单正在提交而不是被提交处理程序拦截。我不知道为什么如果我正确地设置了一切,它为什么不起作用。这是我对jQuery validate方法的调用。我从来没有看到过警告说的很好。

$('form[name="submitCheckoutForm"]').validate({
    debug: true,
    rules: {
        "Password": {
            required: true
        }
    },
    submitHandler: function (form) {
        //actions.SubmitCheckout();
        alert('is good');
        return false;
    }
});

最佳答案

如果您使用的是Unobtrusive Validation插件,那么您也不能调用jQuery Validate的.validate()方法。

为什么?


Unobtrusive Validation插件会根据表单中的各种数据属性自动构造.validate()方法。
jQuery Validate插件不允许在同一表单上多次调用.validate()方法。因此,由于您已经在使用Unobtrusive Validation构造.validate(),因此对.validate()的其他调用将被完全忽略。

09-10 10:29
查看更多