jQuery Validation Plugin:如何测试有效且仅测试有效

时间:2009-12-15 16:10:25

标签: jquery plugins validation

所以我试图找到一种方法让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”,并且不做任何其他操作?

感谢。

2 个答案:

答案 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");