Masked input jquery, почему при вводе текста через событие теряется маска?

Есть плагин masked input для Jquery https://github.com/RobinHerbots/jquery.inputmask

$("input[type=text]").mask("+7(999)-999-99-99"); // биндуем плагин ко всем полям ввода

на экране есть кнопки
<button data-num="1">1</button>
<button data-num="2">2</button>


$(document).ready(function(){
$("input[type=text]").mask("+7(999)-999-99-99"); 
$("button").click(function(){
$("input[type=text]").val($("input[type=text]").val() + $(this).data("num")); // получаем значение поля и добавляем цифру button
})
});


при нажатии на кнопку значение input меняется но теряется маска, подскажите плиз куда копать.

P.S: в следующий раз проблемы, вопросы буду заливать на jsfiddle:)
  • Вопрос задан
  • 5523 просмотра
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Все-таки Вы заставили меня самого делать пример. Ок.
Как я и предполагал, все дело в том, что плагин отлавливает события клавиатуры, и реагирует на них. Если Вы просто вставляете данные — ничего не произойдет. Может попробовать вставить в Вашем примере и нажать Enter — плагин снова сработает.
Так что вот Вам пример может не очень красивого, но решения, после каждого нажатия буттон данный код запускает событие нажатие клавиши enter.
codepen.io/iiil/pen/BLtoq
Почитайте внимательно документацию, возможно там это учтено, но я не смог найти. Возможно есть какой-нибудь refresh метод.
Вы также можете запускать маску по второму разу
codepen.io/iiil/pen/xnGhm
Но этот вариант еще хуже.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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