jQuery验证插件:如何测试有效的和唯一的测试有效

问题描述:

所以我试图找到一种方法来让jQuery验证插件只是在窗体无效时返回false,并且不显示错误消息或执行任何操作其他。但是这比事实证明要困难得多。我设置了验证这样:jQuery验证插件:如何测试有效的和唯一的测试有效

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语句,如果表格无效,它甚至不会到达其他地方。相反,它只是显示错误。但是,如果表单有效,则会触发警报并弹出“成功”。当表单不通过规则时,我怎么才能从插件返回一个简单的“false”,并让它不做任何事情?

谢谢。

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

根据可以传递一个invalidHandler回调函数,以验证()。我不知道这是消息出现之前还是之后,但这是需要看的。

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