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 相关文章推荐
详解如何在css中引入自定义字体(font-face)
May 17 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
html5组织文档结构_动力节点Java学院整理
Jul 11 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5中语义化 b 和 i 标签
Oct 17 HTML / CSS
HTML5 Canvas的常用线条属性值总结
Mar 17 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
html5 canvas绘制网络字体的常用方法
Aug 26 HTML / CSS
关于html字符串正则判断和匹配的具体使用
Dec 12 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
May 28 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 HTML / CSS
CSS3 制作的悬停缩放特效
Apr 13 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使用DES进行加密与解密的方法详解
2013/06/06 PHP
php中autoload的用法总结
2013/11/08 PHP
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
思想专业自荐信范文
2013/12/25 职场文书
校园招聘策划书
2014/01/09 职场文书
办理居住证介绍信
2014/01/15 职场文书
运动会通讯稿200字
2014/02/16 职场文书
2014政务公开实施方案
2014/02/19 职场文书
意向书范文
2014/03/31 职场文书
新店开张活动方案
2014/08/24 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
Python+tkinter实现高清图片保存
2022/03/13 Python
如何在Python中妥善使用进度条详解
2022/04/05 Python