Ввод маски jQuery с помощью DatePicker запускает событие onChange, даже если оно не изменено

У меня есть вход ( id="myDate"), датапикер и маска прикреплены к нему

Когда пользователь нажимает клавишу Tab, чтобы пройти через все элементы управления, и достигает на вход "myDate",

__/__/____

показано из-за:

$("#myDate").mask("99/99/9999");

проблема заключается в том, что когда пользователь нажимает клавишу Tab, чтобы выйти из элемента управления, ничего не записывая, происходит событие onChange, которое ожидается, только когда пользователь изменяет значение элемента управления!

как обнаружить реальные изменения и игнорировать

__/__/____

добавлены и удалены маской jQuery?

1 ответ

Решение

Просто обновитесь до последней версии jQuery (1.9.0) и последней версии maskedInput (1.3.1).
Эта ошибка была решена - посмотрите журнал изменений.

Пример с 1.2.1, который не работает.
Пример с 1.3.1, который делает.

Код (потому что SO говорит, что я должен):
HTML:

First field: <input type="text" id="bla1" name="bla"><br>
Date field: <input type="text" id="datef" name="datef"><br>
Last name: <input type="text" name="lname"><br>

JS:

$("#datef").mask("99/99/9999");
$("#datef").datepicker();
$("#datef").on('change', function(){ alert('ha');});

Не забудьте добавить jQuery/jQuery-UI/ и замаскированный плагин.
Надеюсь это поможет.

Другие вопросы по тегам