[英]Custom jQuery Validation .addMethod
我有一個表格,以最小/最大長度為基礎驗證郵政編碼。 我需要將所有國家/地區的拉鏈最小值設為5位數除了澳大利亞之外需要為4.以下是我遇到的問題:
$.validator.addMethod(
"AusZip",
function(value, element) {
if ($("#Country").val("Aus") && ("#PostalCode").length < 4)) {
return false;
} else return true;
},
"Australian Zip Code Must Be at least 4 Digits");
然后在規則中
rules: {
PostalCode: {
required: true,
minlength: 5 //for all countries except AUS
AusZip: true // for Aus
}
}
長度不是要走的路嗎?
我假設所有驗證規則都必須通過,這意味着如果長度為4,你的minlength
總是會失敗。
此外,你錯過了$
before ("#PostalCode").length
。
此行也設置了#Country
的值。
$("#Country").val("Aus")
您想獲得該值, 並將其與"Aus"
進行比較 。
$("#Country").val() === "Aus"
嘗試刪除minlength
,並更改自定義功能。
嘗試這個:
編輯:更改,以便您有2個驗證器。
一個驗證該縣是澳大利亞, 並且該值的長度至少為4。
另一個驗證該縣不是澳大利亞,並且該值的長度至少為5。
$.validator.addMethod("AusZip", function(value, element) {
var isAus = $("#Country").val() === "Aus";
if ( isAus && value.length < 4 ) {
return false;
} else return true;
}, "Australian Zip Code Must Be at least 4 Digits");
$.validator.addMethod("NonAusZip", function(value, element) {
var isNotAus = $("#Country").val() !== "Aus";
if ( isNotAus && value.length < 5 ) {
return false;
} else return true;
}, "Zip Code Must Be at least 5 Digits");
$('form').validate({
rules: {
PostalCode: {
required: true,
AusZip: true,
NonAusZip: true
}
}
});
或者,如果您不需要基於國家/地區的自定義驗證消息,則可以執行以下操作:
$.validator.addMethod("GlobalZip", function(value, element) {
var isAus = $("#Country").val() === "Aus";
if ( ( isAus && value.length < 4 ) || value.length < 5 ) {
return false;
} else return true;
}, "Zip Code is not long enough");
$('form').validate({
rules: {
PostalCode: {
required: true,
GlobalZip: true
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.