Html5页面上如何禁止手机虚拟键盘弹出


Posted in HTML / CSS onMarch 19, 2020

工作中遇到如下需求,点击输入框弹出自定义弹窗,输入框是input标签:

Html5页面上如何禁止手机虚拟键盘弹出

但是在移动端,input会默认触发手机的虚拟键盘,如何阻止手机虚拟键盘弹起呢?目前我试过有两个方案,一个是给input添加readonly属性,另一个就是在input事件处理方法前面添加一句document.activeElement.blur() 。

readonly

使用readonly方式来阻止虚拟键盘弹出应该是最简单最优雅的方式了。readonly 属性规定输入字段为只读。只读字段是不能修改的。不过,用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本。

值得一提的是它的取值,只要声明了readonly属性,不管取什么值都可以,比如readonly=""、readonly="readonly"、readonly="abc"都是一样的

优点:简单
缺点:在iOS的Safari中无效(未做更多情况测试)

document.activeElement.blur()

这是个什么玩意儿?document.activeElement是一个Web API接口。MDN上的解释是:它返回当前页面中获得焦点的元素,也就是说,如果此时用户按下了键盘上某个键,会在该元素上触发键盘事件,该属性是只读的。

document.activeElement属性始终会引用DOM中当前获得了焦点的元素。元素获得焦点的方式有用户输入(通常是按Tab键)、在代码中调用focus()方法和页面加载。

它里面有很多方法,在浏览器控制台查看,可以看到有很都方法:

Html5页面上如何禁止手机虚拟键盘弹出

那么document.activeElement.blur()为什么可以阻止虚拟键盘弹出呢?原因是:当你点击input的时候,document.activeElement获得了DOM中被聚焦的元素,也就是你点击的input,而调用.blur()方法,blur我相信大家都知道吧,就是取消聚焦。获得被聚焦的元素然后强制blur以达到没有聚焦的样子、、、感觉绕了。

优点:支持Android、iOS
缺点:需要添加额外的JS代码

这句代码加在什么地方?加入有如下HTML

<div class="calendar">
    <div>
        <input type="text" id="datePicker" class="date_picker" placeholder="点击选择入住日期"/>
    </div>
</div>

那么这句JS加在事件处理方法中

$("#datePicker").focus(function(){
    document.activeElement.blur();
});

总结

就当前需求来说,用document.activeElement.blur()确实是在绕弯子,直接使用readonly是最佳方案。但是document.activeElement很强大,可以做很多事。

到此这篇关于Html5页面上如何禁止手机虚拟键盘弹出的文章就介绍到这了,更多相关Html5手机键盘弹出内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
css3动画过渡实现鼠标跟随导航效果
Feb 08 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 HTML / CSS
CSS3制作漂亮的照片墙的实现代码
Jun 08 HTML / CSS
css3实现冲击波效果的示例代码
Jan 11 HTML / CSS
HTML5打开本地app应用的方法
Mar 31 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
Mar 14 HTML / CSS
HTML5新特性之用SVG绘制微信logo
Feb 03 HTML / CSS
如何利用input事件来监听移动端的输入
Apr 15 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
Aug 08 HTML / CSS
canvas拼图功能实现代码示例
Nov 21 HTML / CSS
AmazeUI 加载进度条的实现示例
Aug 20 HTML / CSS
html+css实现滚动到元素位置显示加载动画效果
Aug 02 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
Mar 18 #HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 #HTML / CSS
canvas实现手机的手势解锁的步骤详细
Mar 16 #HTML / CSS
HTML利用九宫格原理进行网页布局
Mar 13 #HTML / CSS
html5默认气泡修改的代码详解
Mar 13 #HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
Mar 10 #HTML / CSS
HTML5表单验证特性(知识点小结)
Mar 10 #HTML / CSS
You might like
php include的妙用,实现路径加密
2008/07/29 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
js实现的常用的左侧导航效果
2013/10/17 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
pytorch 数据集图片显示方法
2018/07/26 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
幼儿园大班开学教师寄语
2014/04/03 职场文书
本科毕业生自荐信
2014/06/02 职场文书
租房协议书范文
2014/08/20 职场文书
公司演讲稿开场白
2014/08/25 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
护林员个人总结
2015/03/04 职场文书
中英文求职信范文
2015/03/19 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android