html5弹出窗口(Html5页面上如何禁止手机虚拟键盘弹出)
html5弹出窗口
Html5页面上如何禁止手机虚拟键盘弹出工作中遇到如下需求,点击输入框弹出自定义弹窗,输入框是input标签:
但是在移动端,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()方法和页面加载。
它里面有很多方法,在浏览器控制台查看,可以看到有很都方法:
那么document.activeElement.blur()为什么可以阻止虚拟键盘弹出呢?原因是:当你点击input的时候,document.activeElement获得了DOM中被聚焦的元素,也就是你点击的input,而调用.blur()方法,blur我相信大家都知道吧,就是取消聚焦。获得被聚焦的元素然后强制blur以达到没有聚焦的样子、、、感觉绕了。
优点:支持Android、iOS
缺点:需要添加额外的JS代码
这句代码加在什么地方?加入有如下HTML
<li class="calendar"> <li> <input type="text" id="datePicker" class="date_picker" placeholder="点击选择入住日期"/> </li> </li>
那么这句JS加在事件处理方法中
$("#datePicker").focus(function(){ document.activeElement.blur(); });
总结
就当前需求来说,用document.activeElement.blur()确实是在绕弯子,直接使用readonly是最佳方案。但是document.activeElement很强大,可以做很多事。
到此这篇关于Html5页面上如何禁止手机虚拟键盘弹出的文章就介绍到这了,更多相关Html5手机键盘弹出内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
- ios如何播放html5(Html5移动端适配IphoneX等机型的方法)
- html5按钮点击跳转(HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题)
- html5 设置缓存(HTML5实现应用程序缓存Application Cache)
- Html5新增的标签
- html5的语法变化(详解HTML5.2版本带来的修改)
- html为什么视频不能自动播放(html5中嵌入视频自动播放的问题解决)
- 制作共用的头部和底部html5界面(html5移动端价格输入键盘的实现)
- 用html制作一个简易小游戏(Html5写一个简单的俄罗斯方块小游戏)
- html5canvas功能介绍(Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 附转换公式)
- html5基本标签详解(详解HTML5布局和HTML5标签)
- html5带图标下拉菜单(html5小程序飞入购物车抛物线绘制运动轨迹点)
- html5显示中心代码(HTML5中的Web Notification桌面通知功能的实现方法)
- html5 web技术(html5视频常用API接口的实战示例)
- HTMl5 sessionStorage和localStorage
- html5 webrtc技术详解(Html5 webRTC简单实现视频调用的示例代码)
- html5隐藏数字(HTML5去掉输入框type为number时的上下箭头的实现方法)
- 数学语文题目(语文的数学题)
- 香蕉(香蕉三种人不宜吃)
- 没钱可以快乐吗(没钱也能快乐吗)
- 快乐是什么(快乐就是)
- 东南亚有哪个国家(东南亚有哪个国家最发达)
- 东南亚安全吗(好不好挣钱)
热门推荐
- python opencv 标记目标(使用Python的OpenCV模块识别滑动验证码的缺口推荐)
- docker容器启动执行多条命令(详解Shell脚本控制docker容器启动顺序)
- python在txt指定行添加文本(Python修改文件往指定行插入内容的实例)
- sqlserver如何设置定时备份(SQL Server使用脚本实现自动备份的思路详解)
- mysql怎么和sqlyog连接(Mysql桌面工具之SQLyog资源及激活使用方法告别黑白命令行)
- VS中使用Unit Test Generator进行单元测试
- python云服务技术(Python脚本修改阿里云的访问控制列表的方法)
- 使用Console命令调试JS
- python strip用法(Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析)
- mysql新增字段并添加备注(mysql添加备注信息的实现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9