JQuery使用自定义选择器和逻辑进行validation

是否可以将JQuery Validate与自定义选择器和validation逻辑一起使用? 以下内容:

$('#myForm').validate({ rules: { '[myattr="foo"]': function(content) { return $(content).val().contains('bar'); } } }) 

我似乎无法在文档中找到答案。

谢谢。

要在.validate()内声明规则, 必须使用name属性。 解决方法是使用rules('add')方法,它允许您使用任何jQuery选择器。 (但是,尽管选择了分配规则的方法,但每个字段仍必须包含唯一的name属性。)

 $('[myattr="foo"]').rules('add', { required: true, messages: { required: "optional custom message" } }); 

请参阅: http : //docs.jquery.com/Plugins/Validation/rules#.22add.22rules

备注

  • 请确保您使用最新版本的插件,该插件最近才修复了使用rules('add')违反规则的错误。

  • 如果你的选择器类似于你想要选择多个元素的类,你必须在jQuery .each()包装rules('add') .each()

 $('.myclass').each(function() { $(this).rules('add', { required: true, messages: { required: "optional custom message" } }); }); 

要使用自定义函数作为规则,只需使用addMethod方法创建方法/规则,然后像任何其他规则一样声明它。

  $.validator.addMethod('myrule', function(value, element, params) { // your function // return true to pass // return false to fail }, "error message"); $('#myform').validate({ rules: { myfield: { required: true, myrule: true } } }); 

请参阅: http : //docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage