关于iphone点击readonly的input虚拟键盘不消失的情况
今天遇到了一个比较棘手的问题,事情是这样的:
咱有一个添加地址的页面,大概长这样:

收货地址后那个“请选择收货地址”是一个readonly的input,
咱一进页面,直接点击这个“请选择收货地址”是完全看不出任何毛病的,
但是按照大家的习惯啊,当然是一个一个往下填,
这时问题就来了,安卓手机是正常的,显示这样:

可苹果手机不一样了,
咱输了手机号码,点“请选择收货地址”,
这时候,本该关闭的虚拟键盘依然呆在屏幕上,弹出的地址选择器部分显示在虚拟键盘上方,整个页面显得拥挤不堪,(这里没法截图啊!)
那么,如何让这个虚拟键盘关闭就成了一个烧脑的问题了,
于是尝试了网上的各种办法:
①给它加个 -webkit-user-select:none 的style,结果并没有任何变化,pass
②给它加个disabled属性,结果点击的时候虚拟键盘确实没有了,可地址选择器也不出现了,pass
③那就吧input改成span吧?可是依然出现原来那个问题,在这里终于发现了一个现象,当我们点击这个“请选择收货地址”,光标居然还停在刚才输入手机号的那个框里头,这会儿有了点眉目了
④那接着③继续加,在“请选择收货地址”的点击事件里第一行加个this.focus();乖乖,还是不行,具体什么情况记不清啦,pass
⑤于是接着百度了一下:终于在百度知道https://zhidao.baidu.com/question/1240497270717962459.html找到了答案,即
尝试让获取焦点的元素失去焦点,document.activeElement.blur();
同样,是在“请选择收货地址”的点击事件里第一行加的,一试,果然完美解决了,
接着又把span改回了原来的input,也运行正常!!!
关于iphone点击readonly的input虚拟键盘不消失的情况的更多相关文章
- 移动端ios针对input虚拟键盘挡住的问题
写移动端的时候发现input的虚拟键盘对Ios的手机不是很友好 我的是苹果6 点击的时候经常会挡住input框 针对这个问题找了很多发现都没效果 最后发现用下面这段js就可以解决了 $("i ...
- input 虚拟键盘
if (!Element.prototype.scrollIntoViewIfNeeded) { Element.prototype.scrollIntoViewIfNeeded = function ...
- (转载)ios关闭虚拟键盘的几种方法
在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和U ...
- 关闭ios虚拟键盘的几种方法
在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和U ...
- IOS系统下虚拟键盘遮挡文本框问题的解决
最近在项目中发现同样的代码在Android端微信网页中点击文本框唤出的虚拟键盘不会遮挡文本框,但是在IOS端的微信网页中点击文本框唤出的键盘却在大部分情况下会遮挡文本框 经过高人指点,这个问题终于解决 ...
- ios开发中关闭textview控件的虚拟键盘
在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘. 1.第一种方法是textfield控件 ...
- 【转】iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法
iOS上面对键盘的处理很不人性化,所以这些功能都需要自己来实现, 首先是点击return和屏幕隐藏键盘 这个首先引用双子座的博客 http://my.oschina.net/plumsoft/blog ...
- 在IE下,如果在readonly的input里面键入backspace键,会触发history.back()
在IE下,如果在readonly的input里面键入backspace键,会触发history.back(), 用以下jQuery代码修正之 $("input[readOnly]" ...
- [转]jquery 点击表格变为input可以修改无刷新更新数据
原文地址:http://www.freejs.net/article_biaodan_43.html 之前已经发了2篇类似的文章<点击变td为input更新>和<jquery表格可编 ...
随机推荐
- app测试特点
一.安装与卸载1.软件安装后是否可以正常运行:2.安装过程中是否可以中断3.安装空间不足时是否有相应的提示4.是否可以卸载应用(桌面卸载和应用卸载)二.权限测试1.扣费风险:包括发送短信.拨打电话.连 ...
- extern用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义. 另外,extern也可用来进行链接指定. 2 问题:ext ...
- [进程管理] 理解 Linux 的处理器负载均值
原文链接: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages http://www.gracecode. ...
- linux 安装memcached C/C++使用libmemcached库(续)
#include <iostream> #include <string> #include <libmemcached/memcached.h> using na ...
- struts2中struts.xml 放置路径的问题
在搭建struts2项目时如果在web.xml中不指定struts.xml文件的路径,struts2会默认到/WEB-INF/classes中寻找加载其配置文件的,但我就是想把struts的配置文件放 ...
- 【数据库系列学习一】Access与Excel的区别和联系
1.主题对一个主题Access只有一个表,而Excel可以有多个表.2.多表关系Access表各个表间存在严格的关联.Excel表各个表间的关系随意.3.数据计算Excel表中单元格中可以存储数据,也 ...
- MySQL AutoCommit带来的问题
现象描述 测试中发现,服务A在得到了服务B的注册用户成功response以后,开始调用查询用户信息接口,却发现无法查询出任何结果.检查binlog发现,在查询请求之前,数据库确实已经完成了commit ...
- sql注入基础(原理)
一.注入的分类 按数据库分类:1.整形 2.字符型(需要考虑单引号闭合的问题,还有注释不必要的语句 # ) eag: id='admin' id='admin and1=1'这样会报错 所以 ...
- windows10 配置 华为vpn客户端
2017-05-08 1. 安装客户端软件VPNClient_V100R001C02SPC703.exe 2. 新建vpn 安装完成后,打开客户端连接vpn,发现未启用虚拟网卡(这是因为还需要安装客户 ...
- Docker - 容器直连
本文是在原文基础上的实际操作验证记录和细节补充. 默认情况下,容器连接到虚拟网桥docker0提供的虚拟子网中,容器之间通过默认网关(虚拟网桥docker0接口地址)建立连接. 如果不使用虚拟网桥,用 ...