Задать вопрос

Почему при изменении страны, пропадают последние символы (цифры)?

Здравствуйте
Использую
1) intl-tel-input
2) Mask-Plugin

Мой код jsfiddle

Например, если выбрать Того, а затем вернуться на Россию пропадают последние цифры маски
5e2fe2a4ea716426445834.png.

Подскажите, почему так происходит и как это исправить?
Спасибо
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
JRK_DV
@JRK_DV
Рецепты https://codepen.io/jrkdv/full/LKLXdq
как это исправить
самое простое это добавить обработчик на событие "open:countrydropdown" и в нём у поля ввода удалять аттрибут "maxlength"
$('#phone').on('open:countrydropdown', function() {
  $(this).removeAttr('maxlength');
})

почему так происходит
Mask-Plugin устанавливает аттрибут maxlength, чтобы нельзя было ввести больше символов, чем длина маски.
При смене страны плагин intl-tel-input устанавливает placeholder и обрезает его по длине maxlength

как это происходит
Могут быть неточности, смотрел не вчитываясь в подробности
В процессе смены страны вызывается метод _updatePlaceholder():1017
В этом методе, для удаления символов кода страны, вызывается метод
placeholder = this._beforeSetNumber(placeholder); // Line: 1023


В свою очередь метод _beforeSetNumber():1190 возвращает значение из метода
return this._cap(number); // Line: 1207 в котором обрезается placeholder

Именно в этом методе _cap() происходит проверка на длину maxlength и обрезание строки
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Lord_Dantes
У вас почему-то выставляет maxlength="11", а нужно 13.
Не знаю в чем проблема но поэтому скрывает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы