焦点不会在移动设备上跳转到另一个输入字段,而是在桌面上跳转



这个javascript可以在桌面上工作,但不能在移动设备上工作。在移动设备中,焦点不会跳转到另一个输入字段。

const codes = document.querySelectorAll('.otp')
codes[0].focus()
codes.forEach((code, idx) => {
code.addEventListener('keydown', (e) => {
if (e.key >= 0 && e.key <= 9) {
codes[idx].value = ''
setTimeout(() => codes[idx + 1].focus(), 10)
} else if (e.key === 'Backspace') {
setTimeout(() => codes[idx - 1].focus(), 10)
}
})
});
<div class="d-flex flex-row">
<input class="form-control login_form_control otp" type="text" maxlength="1">
<input class="form-control login_form_control otp" type="text" maxlength="1">
<input class="form-control login_form_control otp" type="text" maxlength="1">
<input class="form-control login_form_control otp" type="text" maxlength="1">
<input class="form-control login_form_control otp" type="text" maxlength="1">
<input class="form-control login_form_control otp" type="text" maxlength="1">
</div>

在移动设备中,按下回车键后,您需要等待更多毫秒来聚焦其他输入:D您可以尝试在超时或更长时间内使用3000ms来解决问题。在我的项目中,它起了作用。

最新更新