У меня проблемы с настройкой Jquery Validation для работы со следующими правилами.
У меня есть поле, замаскированное в формате SSN, проверка не должна разрешать отправку этой информации, если она не является полной SSN.У меня есть рабочая функция регулярных выражений, которая отклоняет не SSN.Мне это нужно, чтобы не допустить пустых представлений (маска применяется только в том случае, если поле - onFocus).И последнее, но не менее важное: поле НЕ требуется, если установлен другой флажок (#noSSN).
Я добавил страницу JSfiddle, чтобы помочь: http://jsfiddle.net/B2UpW/3/
Похоже, чтоработать немного по-другому на странице скрипки.Надеюсь, что это поможет!
Редактировать: я еще не получил никаких ответов ... интересно, есть ли какие-либо сомнения по поводу моего вопроса?Любые предложения, которые помогут найти помощь, приветствуются!
$("#ssn").mask("999-99-9999");
$.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value !== param;
}, "Please choose a value!");
$("#applicantForm").validate({
rules: {
ssn: {
notEqual: "___-__-____",
required: {
depends: function(element) {
return ($("#ssn").val() == ""
|| isValidSSN($("#ssn").val())
|| $("#noSSN:unchecked"));
}
}
}
},
messages: {
ssn: 'Please enter a social security number.'
}
});
function isValidSSN(value) {
var re = /^([0-6]\d{2}|7[0-6]\d|77[0-2])([ \-]?)(\d{2})\2(\d{4})$/;
if (!re.test(value)) { return false; }
var temp = value;
if (value.indexOf("-") != -1) { temp = (value.split("-")).join(""); }
if (value.indexOf(" ") != -1) { temp = (value.split(" ")).join(""); }
if (temp.substring(0, 3) == "000") { return false; }
if (temp.substring(3, 5) == "00") { return false; }
if (temp.substring(5, 9) == "0000") { return false; }
return true;
}