@borisevstratov

Как отловить событие автоподстановки номера телефона?

Добрый день!

Пытаюсь реализовать маску ввода телефона на основе IMask
Использую паттерн: "{+7} (000) 000-00-00"

И столкнулся с довольно актуальной проблемой: многие до сих пор записывают номер телефона в формате "8 921 XXX-XX-XX".
Для ввода телефона и вставки из буфера обмена сделал такой "воркэраунд":
// вставка телефона из буфера обмена
    if (eventType == "paste" && inputPhone.length > 10) {
        if (inputPhone.startsWith(89) || inputPhone.startsWith(88) || inputPhone.startsWith(78) || inputPhone.startsWith(79)) {
            result = inputPhone.substring(1);
            $('input.phone').val(result);
        }
    }

// ручной ввод телефона через «восьмерку»
    if (eventType == "keypress") {
        if (inputPhone.startsWith(789) || inputPhone.startsWith(788) || inputPhone.startsWith(778) || inputPhone.startsWith(779)) {
            result = inputPhone.substring(2);
            $('input.phone').val(result);
        }
    }


Но никак не могу решить случай, когда номер телефона в формате "8 XXX XXX-XX-XX". подставляется из телефонной книги на iOS (на Андроид не тестировал пока).

606993a4a45c0206378082.jpeg

Подскажите, пожалуйста, на каком событии можно отловить автоподстановку и подставляемое значение, чтобы корректно обработать этот номер телефона?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Попробуйте eventType == "input". Но это и при обычном вводе срабатывать будет.
Ответ написан
Ваш ответ на вопрос

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

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