Страницы

Поиск по вопросам

пятница, 12 октября 2018 г.

Сделать приоритет для маски телефона используя jquery.inputmask

Для телефона написал такую маску:
$("#phone").inputmask("(8 999 999 99 99)|(+7 999 999 99 99)|(+7 99999 9 99 99)|(8 99999 9 99 99)|(+7 9999 99 99 99)|(8 9999 99 99 99)");
Как можно сделать, чтобы именно первая маска (мобильного телефона) была в приоритете и подставлялась первой при заполнении поля?


Ответ

Самым гибким вариантом будет для вас, повесить слушатель события keyup и менять маски в зависимости от введенного значения. Приведу пример смены маски для номеров с 8 или +7. При таком подходе вы сможете полностью контролировать приоритет маск и кейсы их применения относительно введенного значения.
let $phone = $('#phone'); //Маска по умолчанию $phone.inputmask("9 999 9999-999"); $phone.on("keyup", function(event) { //Получаем значение поле без маски var value = $(event.target).inputmask("unmaskedvalue"); //Далее могут быть любые проверки, чтобы изменить маску на нужную.. //Например:сделаем для номеров +7 if (value.length === 2 && value === "+7") { $phone.inputmask("+7 (999) 999-99-99"); } //Если поле очистили, уберем маску и значение, можем еще вернуть маску по умолчанию при необходимости if (value === "") $phone.inputmask('remove').val(""); });

Комментариев нет:

Отправить комментарий