如何在iOS上的<input type = date>上注册值更改事件

Mir*_*ric 17 javascript jquery html5 ios

我正在尝试创建一个HTML5输入日期组件,以便我可以利用本机iOS日期/时间选择器,我正在使用jquery.我有以下代码来生成组件:

  var $inputDate = $("<input></input>");
  $inputDate.attr("type", "date");
  $inputDate.attr("value", "2004-05-03");
  $inputDate.change(function(event)
  {
    console.log("value changed");
  });
Run Code Online (Sandbox Code Playgroud)

代码在本机应用程序中的webkit组件内运行.输入控件显示正常,我可以使用选择器更改值.但是,当我更改值并关闭选择器时,不会触发更改功能.当我在Chrome中的网页中运行此功能时,工作正常.如何在iOS上完成这项工作?

Mir*_*ric 23

当解除日期/时间选择器时,将调用onblur函数.所以这确实有效:

var $inputDate = $("<input></input>");
$inputDate.attr("type", "date");
$inputDate.attr("value", "2004-05-03");
$inputDate.blur(function(event)
{
  console.log("value changed");
});
Run Code Online (Sandbox Code Playgroud)

在较新版本的Chrome(和Android上的Chrome)中:

  • 选择日期时调用onchange事件
  • 只有在控件失去键盘焦点时,才会在取消下拉列表时调用onblur事件

下面是一个示例,显示使用纯JavaScript生成哪个事件:http://jsbin.com/iximuy/4