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实现简易版的刮刮乐效果
Sep 27 HTML / CSS
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
Jun 03 HTML / CSS
利用纯css3实现的文字亮光特效的代码演示
Nov 27 HTML / CSS
使用HTML5原生对话框元素并轻松创建模态框组件
Mar 06 HTML / CSS
使用css如何制作时间ICON方法实践
Nov 12 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
Dec 13 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
HTML5移动端手机网站开发流程
Apr 25 HTML / CSS
Canvas系列之滤镜效果
Feb 12 HTML / CSS
HTML基础详解(下)
Oct 16 HTML / CSS
分享CSS盒子模型隐藏的几种方式
Feb 28 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实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
pandas分批读取大数据集教程
2020/06/06 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
装修五一活动策划案
2014/01/23 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
放假通知格式
2015/04/14 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
Go语言特点及基本数据类型使用详解
2022/03/21 Golang