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教程:新增加的结构伪类
Apr 02 HTML / CSS
使用CSS3制作响应式导航菜单的方法
Jul 12 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
Oct 20 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
Apr 04 HTML / CSS
html5新增的属性和废除的属性简要概述
Feb 20 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
Sep 06 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
May 12 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
浅谈html5 video 移动端填坑记
Jan 15 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
Jul 10 HTML / CSS
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
Dec 06 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
apache中为php 设置虚拟目录
2014/12/17 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
jquery中动态效果小结
2010/12/16 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
责任担保书范文
2014/05/21 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫