Ввод маски 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/ и замаскированный плагин.
Надеюсь это поможет.