@pilolin
HTML программист

Маска телефона в поле input?

В сети не составляет труда найти плагин для JQuery набора телефона по маске, остается только подключить сам JQuery и прописать $('[type='tel']').mask('+7 (999) 999-99-99'). Но кривые пользователи набирают всеровно телефон с 7 из чего следует, что номер приходит неверный (не хватает последней цифры). Как можно доработать его или может есть другое решение какое-то (другой плагин или поставить проверку перед сабмитом)?
  • Вопрос задан
  • 7637 просмотров
Решения вопроса 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Сделать код +7 через select, в котором можно даже флажки вывести, и пусть у него значение по умолчанию будет +7. А остальные цифры (999) 999-99-99 вывести в Input с маской, как вы и выводите (только без +7). Это самый простой и безпоследственный вариант.
Ответ написан
@pilolin Автор вопроса
HTML программист
Решили проблему добавлением одного дополнительного символа необязательного в маску.

$(".mask-phone").mask('+79999999999?9', {placeholder: ''});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Сделать обычное текстовое поле.
Многие не пишут ничего а копируют, у них вбит в блокнотике телефон через 7, через 8 или вообще городской и они его втыкают.
Зачем усложнять им жизнь, да и себе? :)
Я так раз пьяный перевел деньги на номер с 77, и не очень люблю эти маски ....
Неужели если вам придет телефон в другом формате, вы не поймете?

Еще как вариант, это подать сигнал звуковой, если цифр больше чем должно быть.
Ответ написан
kasheibess
@kasheibess
веб уже не тот
$('[type='tel']').mask('+9 (999) 999-99-99'). По крайней мере в последнем проекте после тестов было решено изменить маску именно на такую
Ответ написан
Комментировать
sergski
@sergski
web-developer
Нужно разбирать введеные пользователем данные. Например пользователь копипастит +7 495 123-45-67 или +7(495) 1234567 и тп. Вам нужно найти и удалить "+7", пробелы, дефисы, скобки, чтобы осталось только цифры -- код и номер. Их и вставляете, если цифр осталось 10. Если меньше, выводите сообщение проверить номер.
Т.е. у вас в форме не должно в принципе вывестись такое: +7+749512345 или +7+7(495)123 или +7+7(495) 12 и тп. Если вводит с клавиатуры не должны вводится плюсы скобки, дефисы, -- только цифры.
Ответ написан
Комментировать
@DanKud
А чем не вариант вешать событие .keypress() и фильтровать введенные данные обрезая первые +7 или 7. Но есть нюанс еще в том, что +77.. это казахстанские номера, в теории такой номер тоже на российском сайте тоже может всплыть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы