我有一系列HTML输入元素:
<input type="number">
<input type="number">
<input type="number">
etc...
我希望在输入&#39;输入时将焦点从当前输入移动到下一个输入。在当前输入上触发事件。这样做很简单并且效果很好......除了在iOS 5.1上的Safari(也许是其他人,这是我检查过的第一个移动设备)。这适用于大多数桌面:
$('input').on('input', function(){
$(this).next().focus();
});
我已经阅读了几个关于此问题的帖子(例如Programmatically focus on next input field in mobile safari),并且显然是出于设计,以防止键盘在此设备上不必要地弹出。解决方案似乎是在focus
上调用touchstart
事件。但是,我已经尝试过了,但它仍然无法运作。它只会导致在键盘上按下数字后当前输入为空白。
我尝试过的代码如下:
$('input').on('input', function(){
$(this).next().trigger('touchstart');
});
$('input').on('touchstart', function(){
$(this).focus();
});
这是一个小提琴:http://jsfiddle.net/jfk35hp2/2/。
有人可以建议如何在iOS 5上运行吗?