iPhone 6 / iOS 8.1.2 - 设置输入类型='日期'用JavaScript得到错误的键盘

时间:2015-01-27 13:01:58

标签: javascript jquery ios iphone html5

我想在我的日期输入中添加一个占位符<input type="date" id="birthday">但是由于W3C规范我们不能这样做,所以我已经将我的项目修改为文本输入<input type="date" id="birthday">并且关注焦点我将输入类型更改为date

$(document.body).on('focus', '#birthday', function (event) {

event.preventDefault();

  if($(this).attr('type') !== 'date') {
     $(this).attr('type','date'); 
  }
});

这在桌面浏览器(支持的地方),Android,iPhone 4和其他设备上都很好,但是当输入有焦点时我们仍然可以获得文本键盘而不是输入的日期选择键盘。有没有人知道如何才能显示正确的键盘?

我知道使用或编写JS datepicker可能更好,但我想使用本机HTML5日期输入。当项目失去焦点时,我点击它会显示正确的键盘。我试图包含代码,所以当我们获得焦点时,我们创建一个模糊事件,然后重新引入焦点或点击事件,但这似乎不起作用(见下文)。以前有人有过这个问题吗?

$(document.body).on('focus', '#birthday', function (event) {

event.preventDefault();
// this doesn't work
  if($(this).attr('type') !== 'date') {
     $(this).attr('type','date'); 
     $(this).blur();
     // perhaps this should be in a callback?
     $(this).click();
  }
});

0 个答案:

没有答案