2017-09-25 76 views
0

我使用input type=date来捕获用户的日期。因为我们不能对输入的占位符(类型=日期),我也做了以下内容:科尔多瓦应用中输入类型日期的问题

  • 创建的输入字段与一个占位符中输入文字JS
  • ,焦点,改变类型迄今为止

$("#datefield").on('focus', function() { $("#datefield").attr('type', 'date'); })

在IOS,这是工作完全正常,并带来了本地日期选择器每次我在点击输入区域。 但在android中,它带来了本机日期选择器,但我必须点击两次。调试完成后,我首先发现它经历了焦点事件并将类型更改为日期。在第二次点击时,它不会通过事件,但会带来本机键盘。之后,只要我留在该页面上,因为该类型已更改为日期,它将带来一个点击本机日期选择器。

我是否正确地处理它?我究竟做错了什么?有没有更好的方法来做到这一点?

P.S.我想尽可能避免使用插件。我正在使用HTML,CSS,JS,Jquery

回答

1

尝试使用onfocus属性将文本字段更改为日期字段。

我希望这有助于你...

<input placeholder="Date" type="text" onfocus="(this.type='date')" id="date"> 

或使用jQuery

$('input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"]').each(function() { 
 
    var el = this, type = $(el).attr('type'); 
 
    if ($(el).val() == '') $(el).attr('type', 'text'); 
 
    $(el).focus(function() { 
 
     $(el).attr('type', type); 
 
     el.click(); 
 
    }); 
 
    $(el).blur(function() { 
 
     if ($(el).val() == '') $(el).attr('type', 'text'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input name="date" type="date" placeholder="Date">

+0

的Praveen嗨,我已经试过这一点。但键盘并没有出现。 – andy

+0

尝试删除onblur属性 – PraveenKumar

+0

我会尝试今天进行测试,并会保持更新。 – andy