обнаруживайте, как только значение заполняется с помощью javascript или вводится с клавиатуры в поле ввода

#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; })