我在任何移动设备上测试时遇到问题.最初我在使用Safari或Chrome的iPad上试用过它.然而,后来我也尝试在运行最新版本的Mobile firefox的Android设备上遇到同样的问题.
问题是,只要输入元素发生变化,屏幕键盘就会消失.我尝试过几种不同的方式,但似乎总是产生相同的效果 – 只要我将焦点()放在不同的文本输入上,键盘就会消失.这代表了流量的严重障碍,因为它需要额外的动作来正确地重新选择已经被选择并且应该具有焦点并获得键盘输入的文本字段.在诸如电话之类的小型设备上,情况甚至更糟,因为所有这些都伴随着缩放和平移,因为键盘的移除和重新显示导致页面重新渲染.这与严重程度相似,如果一个人的键盘停止工作并且在编辑文本文档时每次击中时都需要重新插入 – 这显然是一个关键问题.
以下最小代码重现了该问题:
<!DOCTYPE HTML><HTML lang="en"><head><style type="text/CSS"> :focus { color: red; }</style><script type="text/JavaScript">function init() {var tf1 = document.getElementByID('tf1')var tf2 = document.getElementByID('tf2')tf1.focus() tf1.onkeydown = function(evt) { if (evt.which == KeyEvent.DOM_VK_RETURN || evt.which == KeyEvent.DOM_VK_Q || evt.which == KeyEvent.DOM_VK_ENTER) { tf2.focus() if (evt.stopPropogation) evt.stopPropogation() if (evt.preventDefault) evt.preventDefault() return false } }}</script><body onload="init()"><input type='text' ID='tf1' value='fIEld1' /><input type='text' ID='tf2' value='fIEld2' /></body></HTML>
我注意到的第一件事是,当初始focus()工作时(元素变为红色),屏幕键盘不会出现.虽然这很令人不安,但最初点击文本字段并不是一件大事.但是,只要按下任何一个触发键(我在那里抛出一个普通字符来确认它无关紧要),键盘就会突然消失.这对我没有任何意义,不仅是一个文本元素仍然聚焦,这需要屏幕键盘,但它是一个改变焦点的键盘事件,这表明可能仍然需要键盘 – 它是不像我从延迟或其他事情做到这一点.
我尝试过onkeydown,onkeyup和onkeypress – 都表现出相同的行为.
如何防止屏幕键盘消失?我浪费了很多时间试图让这一个关键的功能部分起作用,但它仍然没有!我需要包含什么类型的元标记吗?或者只是所有移动设备都具有的普遍存在的跨平台错误
解决方法 尝试使用click()方法代替或在tf1.focus()之后;像这样:
tf1.click();
这可能导致很少甚至没有软件键盘隐藏.
@H_502_41@ 总结以上是内存溢出为你收集整理的javascript – 当焦点从一个文本字段更改为另一个文本字段时,如何防止屏幕键盘消失全部内容,希望文章能够帮你解决javascript – 当焦点从一个文本字段更改为另一个文本字段时,如何防止屏幕键盘消失所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)