是否有可能使用JQuery驗證自定義選擇器和驗證邏輯?在下面的脈絡:JQuery驗證自定義選擇器和邏輯
$('#myForm').validate({
rules: {
'[myattr="foo"]': function(content) { return $(content).val().contains('bar'); }
}
})
我似乎無法找到在文檔中的答案。
謝謝。
是否有可能使用JQuery驗證自定義選擇器和驗證邏輯?在下面的脈絡:JQuery驗證自定義選擇器和邏輯
$('#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
的錯誤打破了規則。
如果您的選擇器類似於想要選擇多個元素的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
你的具體驗證邏輯可以很容易地表示爲正則表達式 –