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

时间:2012-03-16 15:51:28

标签: javascript jquery ios html5

我正在尝试创建一个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");
  });

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

1 个答案:

答案 0 :(得分:23)

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

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

在较新版本的Chrome(以及Android版Chrome)中:

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

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