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实现一个div设置多张背景图片及background-image属性实例演示
Aug 10 HTML / CSS
CSS3五个技巧给你的网站带来出色的效果
Apr 02 HTML / CSS
CSS3 选择器 基本选择器介绍
Jan 21 HTML / CSS
html5 css3 动态气泡按钮实例演示
Dec 02 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
Jan 30 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
Oct 23 HTML / CSS
详解Canvas 跨域脱坑实践
Nov 07 HTML / CSS
HTML5自定义mp3播放器源码
Jan 06 HTML / CSS
HTML5逐步分析实现拖放功能的方法
Sep 30 HTML / CSS
浅析HTML5 meta viewport参数
Oct 28 HTML / CSS
css背景和边框标签实例详解
May 21 HTML / CSS
浅谈由position属性引申的css进阶讨论
May 25 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
php中执行系统命令的方法
2015/03/21 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
Symfony查询方法实例小结
2017/06/28 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
给酒店员工的表扬信
2014/01/11 职场文书
网络编辑职责
2014/03/01 职场文书
优秀教师演讲稿
2014/05/06 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
统计工作个人总结
2015/03/03 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
东京审判观后感
2015/06/01 职场文书
埃及王子观后感
2015/06/16 职场文书
新闻稿怎么写
2015/07/18 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript