Este javascript funciona en el escritorio pero no funciona en el móvil. En dispositivos móviles, el enfoque no salta a otro campo de entrada.
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>En dispositivos móviles, después de presionar enter, debe esperar más milisegundos para enfocar otras entradas: D Puede intentar usar 3000 ms en el tiempo de espera o más para resolver. En mi proyecto, funcionó.