是否可以将 JQuery Validate 与自定义选择器和验证逻辑一起使用?类似于以下内容:
$('#myForm').validate({
rules: {
'[myattr="foo"]': function(content) { return $(content).val().contains('bar'); }
}
})
我似乎无法在文档中找到答案。
谢谢。
是否可以将 JQuery Validate 与自定义选择器和验证逻辑一起使用?类似于以下内容:
$('#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
备注:
确保您使用最新版本的插件,该插件最近才修复了使用messages
inside ofrules('add')
违反规则的错误。
如果您的选择器类似于class
要选择多个元素的地方,则必须将其包装rules('add')
在 jQuery.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