Quiero autocompletar un área de entrada con javascript. Cuando lo lleno con la pulsación de una tecla orgánica, el detector de eventos de esta entrada activa otra lista que se relaciona con la entrada. Pero cuando digo:
document.getElementById('CardNumber').value = "123"no desencadena nada. imagen
Entonces, ¿cómo puedo activar este detector de eventos "keyup"? Se acepta cualquier sugerencia.
Dado que está utilizando un detector de eventos keyup , puede generar un new Event("keyup") utilizando dispatchEvent desde la función donde está cambiando el valor del elemento.
Referencia: consulte la documentación aquí y aquí .
const element = document.getElementById('username'); element.addEventListener("keyup", (e) => { console.log(e.target.value); }, false); function changeValue() { document.getElementById('username').value = '123'; element.dispatchEvent(new Event("keyup")); } <input type="text" id="username" name="username" placeholder="Enter username" /> <br /> <br /> <button onclick="changeValue()">Change value inside username</button>Tal vez, puede enviar un evento keyup cada vez que establezca un nuevo valor usted mismo
const keyupEvent = new Event('keyup') cardNumber.dispatchEvent(keyupEvent) // document.getElementById("CardNumber").value = "123" const cardNumber = document.getElementById("CardNumber"); cardNumber.addEventListener("keyup", keupLister) function keupLister(e) { console.log('keyup fired',e.target.value); } setTimeout(() => { cardNumber.value = "123"; const keyupEvent = new Event('keyup') cardNumber.dispatchEvent(keyupEvent) }, 5000) <input id="CardNumber" placeholder="Try this input">