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

Posted

技术标签:

【中文标题】jQuery Validation Plugin:如何测试有效且仅测试有效【英文标题】:jQuery Validation Plugin: How to test for valid and only test for valid 【发布时间】:2010-12-26 21:09:48 【问题描述】:

所以我试图找到一种方法,让 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”,而让它什么都不做?

谢谢。

【问题讨论】:

【参考方案1】:

http://docs.jquery.com/Plugins/Validation/validate#options

据此,您可以将 invalidHandler 回调函数传递给 validate()。我不知道那是在消息显示之前还是之后,但这是值得一看的。

【讨论】:

【参考方案2】:

您可以为此使用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");

【讨论】:

以上是关于jQuery Validation Plugin:如何测试有效且仅测试有效的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 学习笔记 - jQuery Validation Plugin

jQuery Validation Plugin - 简单的实现

jQuery Validation Plugin - 成功验证后无法链接函数[重复]

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

JQuery Validation Plugin - 如果用户选择任一单选按钮,则验证字段。

MVC model 验证失效 Unexpected token u in JSON at position 0jquery-plugin-validation