#javascript
Вопрос:
Я написал этот код, который определяет, есть ли значение, заполненное в productName
поле, с помощью javascript, а затем анализирует и автоматически заполняет поле ввода quantity
. Мой код работает только в том случае, если productName
поле заполнено с помощью кода javascript и не регистрирует ввод с клавиатуры, если я использую onChange
Я хочу обнаружить в обоих сценариях, т. е. javascript и клавиатуру, как определить использование клавиатуры в этом коде?
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 ; }
lt;input type="text" id="productName" name="productName" placeholder="product name"gt; lt;input type="text" id="quantity" name="quantity" placeholder="quantity"gt; lt;button onclick="changeInput()"gt;Changelt;/buttongt;
Комментарии:
1. Итак, свяжите входное событие?
Ответ №1:
Поскольку я новичок в Javascript, мне помог комментарий @epascarello, и это было довольно легко с привязкой элемента ввода:
document.getElementById("productName").addEventListener("input",(event)=gt;{ document.getElementById("quantity").value= document.getElementById("productName").value; })