所以我试图找到一种方法让jQuery验证插件在表单无效时返回false,并且不显示错误消息或执行任何其他操作。但事实证明这比应该更加困难。我正在设置验证:
var validator = $journalForm.validate({
rules: {
EntryDate: { required: true, date: true },
EvalStatus: { required: true },
EvalState: { required: true },
ActivityType: { required: true },
Duration: { required: true },
}
});
我正在测试表格是否有效:
if ($form.valid()) {
alert("success");
}
else {
alert("fail");
}
问题是当它遇到上面的if语句时,如果表单无效,它甚至都没有到达else。相反,它只显示错误。但是,如果表单有效,它会到达警报并弹出“成功”。当表单没有通过规则时,我怎么能从插件中返回一个简单的“false”,并且不做任何其他操作?
感谢。
答案 0 :(得分:0)
http://docs.jquery.com/Plugins/Validation/validate#options
根据你可以将invalidHandler回调函数传递给validate()。我不知道这些消息是在消息出现之前还是之后出现的,但这是值得关注的。
答案 1 :(得分:0)
你可以使用showErrors
option来传递一个什么都不做的函数,比如:
$journalForm.validate({
rules: {
EntryDate: { required: true, date: true },
EvalStatus: { required: true },
EvalState: { required: true },
ActivityType: { required: true },
Duration: { required: true },
},
showErrors: function() { }
});
这样可以防止显示错误,然后您可以执行此操作以获取状态:
alert($journalForm.valid() ? "success" : "fail");