Для телефона написал такую маску:
$("#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("");
});
Комментариев нет:
Отправить комментарий