Проверка JQuery - конфликт ввода маски - PullRequest
1 голос
/ 21 февраля 2012

У меня есть форма, которая использует jquery validate, и форма проверяется при отправке и при размытии (onfucusout).В некоторых из моих полей есть маски, использующие плагин jquery mask. Маска помещает что-то подобное в поле (---) --- / ----, когда она попадает в фокус.Когда пользователь щелкает из этого поля, (---) --- / ---- исчезает.Моя проблема в том, что хотя поле оставлено черным, оно выдает ошибку проверки, думая, что пользователь ввел (---) --- / ---- вместо того, чтобы просто оставить его пустым.

Моей первой мыслью было установить задержку для проверки, чтобы она проверялась после исчезновения (---) --- / ----.Мой вопрос: как установить задержку проверки для оценки поля после исчезновения символов?Если это не правильное решение, может кто-нибудь помочь мне решить эту проблему.

Опять же, я думаю, что это вызвано тем, что проверка запускается до того, как исчезнут символы маски.Мне нужно это проверить после исчезновения замаскированных заполнителей.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 17 июля 2012

То, как я решил эту проблему.

Маска ввода в моем случае:"(999) 999-9999"

Для моего тестового примера я сделал следующее:

(1) Первым делом я определил, какие символы генерируются в моем DOM. например используя приведенный ниже код в консоли FireBug.

$ ( '# MyPhoneNumberID'). KeyDown (функция () { console.log ($ (это) .val ())

В моем случае это выплевывало следующее ( _) - ___

(2) Обходной путь, который я использовал, состоял в том, чтобы обновить мое регулярное выражение (для телефона) и включить маску как часть регулярного выражения например "( _) - ___" ИЛИ разрешено правильно вводить номера телефонов.

Используемое регулярное выражение: «^: (1) (: \ S * ((+?) -??.? | | () \ S *) (\ d {3} | _ {3} | \ s {3} )? (: \ s * (?: -?. | |)) \ s *) (\ d {3} | _ {3} | \ s {3}) (:? \ s * (: - |.)? \ s *)? (\ d {4} | _ {4} | \ s {4}) $ "

Надеюсь, это поможет!

...