Estoy creando un esquema de entrada similar a Wordle, donde cada entrada tiene solo 1 carácter, y al escribir uno te envía automáticamente al siguiente. El problema es, por supuesto, que no puedes presionar la tecla de retroceso para ir al anterior, así que lo implementé con el siguiente código:
let inputs = document.getElementsByTagName("input"); document.body.addEventListener("keyup", function (e) { if (e.keyCode === 8) { for (let i = 0; i < inputs.length; i++) { if (inputs[i].value == "" && i > 0 && inputs[i] == document.activeElement) { inputs[i - 1].value = ""; inputs[i].value = "" inputs[i - 1].focus(); break } } } });Espero que el código simplemente registre la tecla de retroceso solo una vez, pero en su lugar lo informa varias veces, lo que hace que se borre toda la fila cuando presiono la tecla solo una vez. A veces pueden ser solo 10, otras veces cientos. ¿Por qué es esto? ¿Cómo puedo arreglar esto? Además, me gustaría mencionar que no quiero usar jQuery y quiero mantener este JavaScript puro.