Показать сообщение отдельно
  #1 (permalink)  
Старый 19.07.2014, 02:55
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Проблема совместного использования Masked Input и jQuery Validation
Использую совместно два плагина:
  1. Masked Input Plugin - digitalbush.com/projects/masked-input-plugin/
  2. jQuery Validation Plugin - jqueryvalidation.org

Первый плагин использую для задания шаблона для поля "телефонный номер".
Формат шаблона и плейсхолдер:
$('#phone_field').mask('+7 (999) 999 - 99 - 99', {
		placeholder: '_'
	});

В результате в поле отображается шаблон: "+7 (___) ___ - __ - __", с возможностью ввода только цифр.

Второй плагин использую для валидации поля с параметром required (обязательное поле) и minlength (минимальное количество символов):
phone: {
		required: true,
		minlength: 10
	}

В параметре maxlength (максимальное количество символов) нет необходимости, так как оно ограничивается шаблоном плагина Masked Input.
Очевидно проверку нужно делать по параметру minlength.

Однако, при проверке поля плагином jQuery Validation, поле с телефонным номером помечается как "валидное", даже когда не было введено никаких значений.
Происходит это, судя по всему, потому что проверке подвергаются так же и сами символы шаблона, которых более чем minlenght: 10.

Подскажите пожалуйста, возможно ли както исключить из проверки плагином jQuery Validation символы шаблона?

p.s.: Допускается вынос символов "+7" из шаблона. Их можно разместить перед полем.
p.p.s.: Так же, есть вариант, использовать параметр digits: true (условием проверки будут только цифры) плагина jQuery Validation. Но в этом случае, поле всегда будет "невалидно", так как значение поля содержит помимо цифр символы шаблона ("+", "(", ")", "-", " ").
Ответить с цитированием