ОБНОВЛЕНО для пояснения и примера
примеры: http://jsfiddle.net/pxfunc/5kpeJ/
Метод 1. input
событие
В современных браузерах используется событие input
.Это событие будет срабатывать, когда пользователь вводит текстовое поле, вставляя, отменяя его, в основном, каждый раз, когда значение изменяется с одного значения на другое.
В jQuery это можно сделать следующим образом:
$('#someInput').bind('input', function() {
$(this).val() // get the current value of the input field.
});
начиная с jQuery 1.7, замените bind
на on
:
$('#someInput').on('input', function() {
$(this).val() // get the current value of the input field.
});
Метод 2. keyup
событие
Для старых браузеров используйте keyup
событие (срабатывает после отпускания клавиши на клавиатуре, это событие может давать своего рода ложное срабатывание, поскольку при отпускании «w» значение ввода изменяется и происходит событие keyup
, но также и при «сдвиге»msgstr "клавиша отпущена, событие keyup
срабатывает, но не было внесено никаких изменений во ввод.).Также этот метод не срабатывает, если пользователь щелкает правой кнопкой мыши и вставляет из контекстного меню:
$('#someInput').keyup(function() {
$(this).val() // get the current value of the input field.
});
Метод 3. Таймер (setInterval
или setTimeout
)
Чтобы обойти ограничения keyup
, вы можете настроить таймер на периодическую проверку значения входа для определения изменения значения.Вы можете использовать setInterval
или setTimeout
для проверки таймера.См. Помеченный ответ на этот вопрос SO: Событие изменения текстового поля jQuery или ознакомление с рабочим примером, использующим события focus
и blur
для запуска и остановки таймера для определенного поля ввода