jQuery validate - как проверить одно поле с двумя правилами XOR
У меня есть одно поле, которое может содержать электронную почту или мобильный телефон (в моем случае мобильный - 8 цифр). Я уже попробовал два подхода (оба примера не работают, потому что «элемент» не имеет метода проверки):
Первый подход: создать собственный метод и выполнить там обе проверки, но затем мне нужно создать свою собственную проверку электронной почты и мобильную проверку - я не смог найти способ повторно использовать правила проверки jQuery в новых методах. Вот что я хотел бы иметь:
jQuery.validator.addMethod("mobileoremail", function(value, element) {
return this.optional(element) ||
element.validate({ rules: { digits: true, rangelength: [8, 8] } }) ||
element.validate({ rules: { email: true } });
}, "Invalid mobile or email");
Второй подход: создать зависимые правила. И в этом случае я также не смог найти способ повторно использовать правила проверки jQuery.
{ myRules: {
rules: {
user: {
required: true,
email: {
depends: function(element) {
return !element.validate({ rules: { mobile: true } });
}
},
mobile: {
depends: function (element) {
return !element.validate({ rules: { email: true } });
}
}
}
}
}
}