Я хочу ограничить поле номера телефона только «цифрами», «+» и «пробелами» или ограничить «A-Z». Я использую JQuery Validate и я попытался:Номер телефона, который разрешает только числа, + и пробелы
jQuery.validator.addMethod("numero", function(value, element) {
return this.optional(element) || value == value.match(/^[+1-9 ]*$/);
});
не кажется Однако regex
для моих numero
правил, чтобы работать правильно.
Мой код:
jQuery(document).ready(function(){
jQuery.validator.addMethod("alpha", function(value, element) {
return this.optional(element) || value == value.match(/^[a-zA-Z ]*$/);
});
jQuery.validator.addMethod("numero", function(value, element) {
return this.optional(element) || value == value.match(/^[+1-9 ]*$/);
});
jQuery('.upsale-form').each(function() {
jQuery(this).validate({
rules: {
'Contact.name': {
minlength: 3,
required: true,
alpha: true
},
'Contact.email': {
required: true,
email: true
},
'Contact.phone': {
minlength: 9,
required: true,
numero: true
}
}
});
});
});
не кажется, что будет работать? Проверка полностью нарушена? Ваше регулярное выражение не работает? В противном случае ваш код работает на меня: http://jsfiddle.net/2dx9jkn2/ – Sparky
** ПРИМЕЧАНИЯ **: 1. Вы не ставили методы '.addMethod()' внутри '.each()'. Это просто создание новых правил, которые можно использовать в любом месте и не нужно называть более одного раза на странице. 2. Вы забыли определить сообщения об ошибках для своих пользовательских правил. См.: Http://jsfiddle.net/pqjfxbyt/ – Sparky
Спасибо, я попытался поместить «+4400000000» в поле номера телефона, но его не работает, и если я положу «44 0000 0000», он по-прежнему отображает только цифры «ошибки», во 2-й форме на вашей второй скрипке. Я довольно новичок в этом уровне проверки, поэтому я догадывался об этом, поскольку сообщения нужны, поскольку я не хочу, чтобы они отображались на странице, я использую css для выделения недопустимых полей , –