jQuery/JS «введите» переменную вместо изменения значения

#javascript #html #jquery #dom

Вопрос:

Я внедрил сканер штрих-кодов, который использует мобильные камеры для декодирования и заполнения поля поиска . Это поле имеет функцию автозаполнения при вводе текста:

Например: база данных имеет — 1234, 938, 18279, 3920, 5781

Если я наберу в строке поиска «18», он автоматически выберет 18279, так как в базе данных нет других опций

Обычно это регулярно работает со сканерами штрих-кодов (аппаратными средствами), поскольку они действуют в качестве входных данных.

Однако, когда я использую этот сканер штрих-кодов на основе html5/js, он декодирует результат и вставляет их в поле поиска, однако функция автозаполнения/поиска не работает.

Это мой код

 function onScanSuccess(decodedText, decodedResult) {  if (decodedText !== lastResult) {  document.getElementById("search_product").value = '';   beep();    countResults;  lastResult = decodedText;  console.log(`Scan result ${decodedText}`, decodedResult);  document.getElementById("search_product").focus();  document.getElementById("search_product").value = decodedText;  } }  

Я думаю, что проблема в .value, поскольку он изменяет значение поля, а не «вводит» результат. Существуют ли какие-либо альтернативы .value, которые могли бы решить мою проблему?

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

1. Я предполагаю , что есть такое событие, как $("#search_product").on(...someevent..., handler) а) измените «какое-то событие» на input б) после вызова вашего .value=decodedText добавления handler() . Убедитесь, что это именованная функция, а не встроенная анонимная функция.

2. Вы имеете в виду это // $(‘#search_product’) .автозаполнение({ задержка: 1000, источник: функция(запрос, ответ) { var price_group = «; var search_fields = []; $(‘.search_fields:проверено’).каждый(функция(i){ search_fields[i] = $(это).val(); });