Используя JQuery, как определить, изменилось ли значение ввода текста, пока поле все еще имеет фокус?
Я заметил до публикации этого вопроса, что ранее были подобные вопросы, размещенные по этой теме, однако пользователь не взаимодействует с текстовым полем с помощью клавиатуры в этом случае, в таком случае привязка текстового поля к действию "вставить" или любому другому замечательному предложению не будет работать в моем случае.
наши пользователи вводят строковое значение, которое сканируется из штрих-кода. То, что мы пытаемся сделать, - это избежать раздражения от того, что пользователей сканера вниз, чтобы перейти к следующему полю после сканирования информацию. Однако у меня возникла проблема с обнаружением изменения значения текстового поля, пока оно все еще имеет фокус.
Это единственная часть головоломки, которую мы упускаем, потому что применить фокус к следующему полю на форме тривиально. Может ли кто-нибудь пролить свет на то, как обнаружить изменение значения текстового поля, когда устройство ввода не является клавиатурой? Я уже пробовал использовать событие change (), но это не так огонь до тех пор, пока поле не имеет фокус.
2 ответов
Вы можете просто слушать keypress
событие.
<input type="text" id="target" value="" />
var target = $('#target'),
val = target.val();
function monitor()
{
var current_val = $(this).val();
if (current_val != val) {
console.log('changed from', val, 'to', current_val);
val = current_val;
}
}
target.keypress(monitor);