为什么我的js功能在计算机中不起作用,而在手机中不起作用?



当输入数字时,我必须自动聚焦下一个输入元素。

我的HTML:

"<input id='num-1' class='inp-num' data-pos='0' type='text' maxlength='1' name='one' onkeypress='isInputNumber(event)' autofocus='autofocus'/>" +
"<input id='num-2' class='inp-num' data-pos='1' type='text' maxlength='1' name='two' onkeypress='isInputNumber(event)'>" +
"<input id='num-3' class='inp-num' data-pos='2' type='text' maxlength='1' name='three' onkeypress='isInputNumber(event)'>" +
"<input id='num-4' class='inp-num' data-pos='3' type='text' maxlength='1' name='four' onkeypress='isInputNumber(event)'>" +

在我的javascript中,我有:

$('.inp-num').on('keyup', function() {
if ($(this).val()) {
$(this).next().focus();
}
});

这实际上很好,问题是当我试图在手机上使用它时,它一直保持在同一个输入,而不会转到下一个。我真的需要帮助。

谢谢!

在触发keyup事件之前,您手机的浏览器没有接收到输入元素内的值。因此CCD_ 2此时为假。您需要使用另一种事件类型(如input(来避免这种情况。

更多信息和游乐场:

https://www.w3schools.com/jsref/event_onchange.asp

$('.inp-num').on('input', function() {
if ($(this).val()) {
$(this).next().focus();
}
});

最新更新