Как зарегистрироваться для событий изменения стоимости на <input type = date> на iOS
Я пытаюсь создать компонент даты ввода HTML5, чтобы я мог использовать встроенный iOS date/time picker, и я использую jquery. У меня есть следующий код для генерации компонента:
var $inputDate = $("<input></input>");
$inputDate.attr("type", "date");
$inputDate.attr("value", "2004-05-03");
$inputDate.change(function(event)
{
console.log("value changed");
});
Код работает внутри компонента webkit в родном приложении. Элемент управления ввода отображается отлично, и я могу изменить значение с помощью панели выбора. Однако функция изменения не запускается, когда я изменяю значение и отклоняю сборщик. Когда я запускаю это на веб-странице в Chrome, все работает так, как ожидалось. Как сделать эту работу на iOS?
Ответы
Ответ 1
Функция onblur вызывается, когда команда выбора даты/времени отклоняется. Так что это работает:
var $inputDate = $("<input></input>");
$inputDate.attr("type", "date");
$inputDate.attr("value", "2004-05-03");
$inputDate.blur(function(event)
{
console.log("value changed");
});
В новых версиях Chrome (и Chrome на Android):
- событие onchange вызывается, когда выбрана дата.
- событие onblur не вызывается, когда выпадающее меню отклоняется, только после того, как элемент управления теряет фокус клавиатуры.
Вот пример, показывающий, какое событие генерируется с использованием обычного JavaScript: http://jsbin.com/iximuy/4