我假設所有驗證規則必須通過,這意味着你的minlength
如果你有4
的長度此外,你錯過了之前$
將("#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
}
}
});
因此,如果我從PostalCode規則中刪除「minlength」,對於其他所有其他規則,它仍然需要5的最小長度? – 2010-10-07 14:39:28
這將返回一個錯誤「errorFirstWord」由於某種原因未在控制檯中定義。 – 2010-10-07 14:44:52
它應該。試一試。此行檢查*是否爲澳大利亞且小於四,或小於五*。 '(isAus && $ pCode.length <4)|| $ pCode.length <5' – user113716 2010-10-07 14:45:58