Обнаружьте, как только поле ввода будет заполнено с помощью сканера штрих-кодов

#javascript

Вопрос:

У меня есть два поля ввода productName , и quantity productName поле заполняется с помощью сканера штрих-кодов(у меня нет доступа к коду), мое требование-определить, как только значение заполняется в productName полях, чтобы я мог проанализировать значение и заполнить второе поле quantity .

 <input type="text" id="productName" name="productName">
<input type="text" id="quantity" name="quantity">
 

Поскольку у меня нет доступа к коду, который сканирует штрих-код и заполняет productName поле, есть одна возможность, о которой я думаю, это многократная проверка того, имеет ли поле значение или нет, как показано ниже

 myVar = setInterval(checkValue, 1000);

function checkValue(){
var productName= document.getElementById("productName");
console.log("running");
if (productName amp;amp; productName.value) {
  document.getElementById("quantity").value=productName.value;
  clearInterval(myVar);
}
}

 

Но я ищу лучший подход в ванильном Javascript, есть ли альтернативное решение?

Комментарии:

1. используйте событие onChange, developer.mozilla.org/en-US/docs/Web/API/HTMLElement/…

2. спасибо @RobertRocha , это работает!

Ответ №1:

Вы можете использовать onchange .

Пример:

 const productNameField = document.querySelector('#productName');
const quantityField = document.querySelector('#quantity');

const populateQuantityField = () => {
  quantityField.value = productNameField.value;
}

productNameField.addEventListener('change', populateQuantityField);
 

Дальнейшее Чтение: