我使用的是一个不显着的验证的Ajax.BeginForm。我想给用户一个选项,用最少的验证字段(可能为零)保存数据,但允许在空时保存一些必需的字段。
我想我的要求是:
我可以通过在“文档就绪”中添加以下内容来捕获submit事件并验证表单
$(document).ready(function () {
$('#submit-11').click(function () {
if (!$("#form0").valid()) {
alert("woops");
return false;
}
return true;
});我现在的问题是如何识别哪些字段验证失败以及失败的原因。
我在谷歌上什么也找不到(尽管这可能是我搜索技巧的一部分,而不是问题所在)。
提前谢谢。
发布于 2012-10-09 14:19:52
你试过吗
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
});
}
});
});UPDATE:所以当您将验证处理程序添加到可以实现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中的代码。
https://stackoverflow.com/questions/12801156
复制相似问题