He escrito este código que detecta si hay un valor completado en el campo productName usando javascript y luego analiza y completa automáticamente la quantity del campo de entrada. Mi código solo funciona si el campo productName se completa a través del código javascript y no registra las entradas del teclado si uso onChange
Quiero detectar en ambos escenarios, es decir, javascript y teclado, ¿cómo detecto el uso del teclado en este código?
const input = document.getElementById('productName'); const descriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(input), 'value'); Object.defineProperty(input, 'value', { set: function(t) { console.log('Input value was changed programmatically'); descriptor.set.apply(this, arguments); document.getElementById("quantity").value=t }, get: function() { return descriptor.get.apply(this); } }); var i=0; function changeInput(){ /* console.log(document.getElementById('productName').value) */ document.getElementById("productName").value=i++; } <input type="text" id="productName" name="productName" placeholder="product name"> <input type="text" id="quantity" name="quantity" placeholder="quantity"> <button onclick="changeInput()">Change</button>Como soy un principiante en Javascript, un comentario de @epascarello me ayudó, y esto fue bastante fácil al vincular el elemento de entrada:
document.getElementById("productName").addEventListener("input",(event)=>{ document.getElementById("quantity").value= document.getElementById("productName").value; })