问题出现:
最近在做一个微信公众号项目,里面使用到一个日历插件,但是在手机端,每次点击都会把手机自带的虚拟键盘调出来
解决方案
1,使用readonly
使用readonly方式来阻止虚拟键盘弹出应该是最简单的方式了。readonly 属性规定输入字段为只读。只读字段是不能修改的。
还有值得注意的是只要声明了readonly属性,不管取什么值都可以,比如readonly=”“、readonly=”readonly”、readonly=”aaa”等效果都是一样的。
优点:简单,易用
缺点:在iOS的Safari中无效
2,document.activeElement.blur()
document.activeElement返回的是页面当前获得焦点的元素,那么.blur()就是让这个元素失去焦点。一旦失去焦点,手机的虚拟键盘自然也就消失了。
示例代码:
html:
<div class="calendar">
<div>
<input type="text" id="datePicker" placeholder="点击选择日期"/>
</div>
</div>
js:
$("#datePicker").focus(function(){
document.activeElement.blur();
});
兼容性:此方法兼容Android、iOS