Используя JQuery, как вы определяете, изменилось ли значение ввода текста, пока поле все еще имеет фокус? - PullRequest
8 голосов
/ 08 октября 2009

Я заметил до публикации этого вопроса, что подобные вопросы были опубликованы ранее по этой теме, однако пользователь не взаимодействует с текстовым полем с помощью клавиатуры в этом случае, в этом случае привязка текстового поля к Действие "Вставить" или любое другое изящное предложение не будет работать в моем случае.

Наши пользователи вводят строковое значение, которое сканируется из штрих-кода. То, что мы пытаемся сделать, - это избежать досады, когда пользователь кладет сканер, чтобы перейти к следующему полю после сканирования информации. Однако у меня возникла проблема с обнаружением изменения значения текстового поля, когда оно все еще имеет фокус.

Это единственная часть головоломки, которую нам не хватает, потому что навести фокус на следующее поле в форме тривиально. Может кто-нибудь пролить свет на то, как обнаружить изменение значения текстового поля, когда устройство ввода НЕ является клавиатурой? Я уже пытался использовать событие change (), но оно не срабатывает до тех пор, пока поле не перестанет иметь фокус.

Ответы [ 2 ]

8 голосов
/ 08 октября 2009

Вы можете просто прослушать событие 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);
0 голосов
/ 08 октября 2009

Ну, всегда есть грубая сила: опросите ее с setInterval().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...