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 相关文章推荐
让IE6、IE7、IE8支持CSS3的脚本
Jul 20 HTML / CSS
css3让div随鼠标移动而抖动起来
Feb 10 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
Nov 16 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
Apr 26 HTML / CSS
canvas像素画板的实现代码
Nov 21 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
Dec 17 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
Nov 09 HTML / CSS
HTML5中外部浏览器唤起微信分享
Jan 02 HTML / CSS
html5视频常用API接口的实战示例
Mar 20 HTML / CSS
详解Html5项目适配系统深色模式方案总结
Apr 14 HTML / CSS
css 边框添加四个角的实现代码
Oct 16 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无限级分类方法及代码
2013/06/21 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python中zip和unzip数据的方法
2015/05/27 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python GUI实例学习
2017/11/21 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python3 爬取图片的实例代码
2018/11/06 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
详解Python设计模式之策略模式
2020/06/15 Python
Python 中Operator模块的使用
2021/01/30 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
《老王》教学反思
2014/02/23 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
五一放假通知怎么写
2015/08/18 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
python如何进行基准测试
2021/04/26 Python