Как зарегистрироваться для событий изменения стоимости на <input type = date> на iOS - программирование
Подтвердить что ты не робот

Как зарегистрироваться для событий изменения стоимости на <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?

4b9b3361

Ответ 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