你有没有尝试过
event.preventDefault();
只是在提交点击之后?
http://api.jquery.com/event.preventDefault/
现在关于你更大的问题。我认为您可以使用 jquery 完成所有这些操作,这是一个示例
$(document).ready(function () {
//form validation rules, including custom rules you'd like
$("#form").validate({
rules: {
fieldOne: { required: true },
fieldTwo: { required: function () { /*custom validation*/return true; } }
},
messages: {
fieldOne: { required: "error" },
fieldTwo: { required: "error" }
}
});
//handle submit click
$("#btnSubmit").click(function (event) {
event.preventDefault(); //stops form from submitting immediately
if ($("#form").valid()) { //perform validation
//submit your data if valid
$.post("/your/action", $form.serialize(), function (data) {
//do something with the result
});
}
});
});
更新:所以也许你应该这样做,当你将验证处理程序添加到表单时,你可以实现 submitHandler 和 invalidHandler。现在你真正应该看的是 invalidHandler
$(document).ready(function(){
$("#form").validate({
rules : {
field : {required : true}
},
messages : {
field : {required : ""}
},
submitHandler: function(form) {
form.submit(); //if all is good
},
invalidHandler: function(form, validator){
console.log(validator.errorList); //if something went wrong
}
});
此函数接收验证器,该验证器依次具有包含所有失败字段(和消息)的 errorList。例如,使用 chrome 的开发人员工具测试此代码,您将看到 errorList 中的内容。