我有几个输入字段在行,行为像一个纵横字谜答案行:
每个方块都有自己的输入字段。这样做的原因是有时候方块可以预先填充。现在,在桌面浏览器上,每当输入一个字符时,光标就会跳到下一个输入字段。使用以下代码可以很好地工作:
$(this).next('input').focus();
但移动的safari(我们在ios上测试)的问题是,我不知道如何通过编程自动“跳转”到下一个输入字段,用户可以通过“下一个”按钮来完成,但有没有办法自动完成呢?
我知道focus()
触发器在ios上有一些限制,但是我也看到过一些使用合成点击等的变通方法。
7条答案
按热度按时间i7uq4tfw1#
我找到了一个可能对你有用的变通办法。
Apparently IOS/Safari只在触摸事件处理程序中“接受”焦点。我触发了一个触摸事件,并将
.focus()
插入其中。我在装有Safari的iPhone 3S和iPhone5S上尝试了这个方法,它工作正常:演示here
(在演示中按下“下一步”按钮)
rekjcdws2#
在移动的浏览器中,通过编程移动到下一个输入字段而不关闭键盘似乎是不可能的。(这是一个糟糕的设计,但我们必须使用它。)然而,一个聪明的方法是交换输入元素的位置、值和属性,这样看起来就像您正在移动到下一个字段,而实际上您仍然关注同一个元素。下面是交换
id
、name
和value的jQuery插件的代码,您可以根据需要修改它以交换其他属性,同时确保修复所有已注册的事件处理程序。此处演示:http://jsfiddle.net/EbU6a/194/
xjreopfe3#
UIWebview具有属性
keyboardDisplayRequiresUserAction
当此属性设置为
true
时,用户必须显式点击Web视图中的元素才能显示该元素的键盘(或其他相关输入视图)。当设置为false
时,元素上的焦点事件会导致显示输入视图并自动与该元素关联。https://developer.apple.com/documentation/uikit/uiwebview/1617967-keyboarddisplayrequiresuseractio
hgb9j2n64#
希望这就是你要找的-
检查代码-
https://jsbin.com/soqubal/3/edit?html,output
8e2ybdfx5#
将此行添加到配置文件的ios部分
首选项名称=“键盘显示要求用户操作”值=“假”
bwleehnv6#
我在safari ios上遇到了同样的问题。在登录页面上,我在用户输入一个sms代码后以编程方式关注下一个输入字段。我触发了自动关注输入更改事件。我通过添加延迟修复了这个问题。
有关详细信息,请参见下面的代码
ftf50wuq7#