У меня проблема с тем, чтобы заставить это работать. В нашей форме мы проверяем длину почтового индекса в зависимости от выбранной страны. Минимальная длина в Австралии и Венгрии составляет 4 символа, в Бахрейне - не менее 3, а во всех других странах - не менее 5. Поэтому я написал правило для:
Австралия
$.validator.addMethod("AusZip", function(value, element) {
var isAus = $("#UpdateCountry").val() === "AUS";
if ( isAus && value.length < 4 ) {
return false;
} else return true;
}, "Australian Zip Code Must Be at least 4 Digits");
Венгрия
$.validator.addMethod("HunZip", function(value, element) {
var isHun = $("#UpdateCountry").val() === "HUN";
if ( isHun && value.length < 4 ) {
return false;
} else return true;
}, "Hungarian Zip Code Must Be at least 4 Digits");
и Бахрейн
$.validator.addMethod("BHRZip", function(value, element) {
var isBHR = $("#UpdateCountry").val() === "BHR";
if ( isBHR && value.length < 3 ) {
return false;
} else return true;
}, "Bahrain Zip Code Must Be at least 3 Digits");
Все остальные страны, указанные здесь, и вот где моя проблема
$.validator.addMethod("RegZip", function(value, element) {
var notAus = $("#UpdateCountry").val() != "AUS";
var notBHR = $("#UpdateCountry").val() != "BHR";
var notHun = $("#UpdateCountry").val() != "HUN";
if ( notAus && notBHR && notHun && value.length < 5 ) {
return false;
} else return true;
}, "Zip Code Must Be at least 5 Digits");
Когда я добавляю правило для «RegZip», даже если вы выбираете Австралию или Венгрию и у вас 4-значный почтовый индекс, вы получаете ошибку - то же самое, если вы выбираете Венгрию и 3-значный почтовый индекс. Когда я удаляю «RegZip», вы получаете только ошибку с Австралией / Венгрией, если она меньше 4 цифр, и ошибку с Венгрией, если меньше 3. Проблема заключается в том, что во всех других странах нет требований. Чего мне не хватает?
ТНХ!
EDIT - добавлено «UpdateCountry» в качестве идентификатора элемента. работает. простите за путаницу - мой плохой!