Я просмотрел множество других вопросов и нашел очень простые ответы, включая приведенный ниже код. Я просто хочу определить, когда кто-то изменяет содержимое текстового поля, но по какой-то причине оно не работает ... Я не получаю ошибок консоли. Когда я устанавливаю точку останова в браузере на change()
функцию, она никогда не срабатывает.
$('#inputDatabaseName').change(function () {
alert('test');
});
<input id="inputDatabaseName">
Ответы:
Вы можете использовать
input
событие Javascript в jQuery следующим образом:В чистом JavaScript:
Или вот так:
источник
попробуйте keyup вместо изменения.
Вот официальная документация jQuery для .keyup () .
источник
В каждом ответе не хватает некоторых моментов, поэтому вот мое решение:
В
Input Event
пожарах на клавиатуры ввода, двигай мышь , автозаполнение и Copy-Paste протестированы на Chrome и Firefox. Проверка предыдущего значения позволяет обнаружить реальные изменения, что означает отсутствие стрельбы при вставке одной и той же вещи, наборе того же символа и т. Д.Рабочий пример: http://jsfiddle.net/g6pcp/473/
Обновить:
И если вам нравится запускать
change function
только тогда, когда пользователь заканчивает вводить текст и предотвращать запуск действия изменения несколько раз, вы можете попробовать это:Если пользователь начинает вводить текст (например, «foobar»), этот код запрещает
change action
запускать все типы пользовательских букв и запускается только тогда, когда пользователь прекращает вводить текст. Это особенно полезно, когда вы отправляете ввод на сервер (например, ввод для поиска), что процессорный сервер делает только один поиск ,foobar
а не шесть поисков ,f
а затем ,fo
а затемfoo
иfoob
и так далее.источник
$("#input").focusout(function () {})
. Когда вы нажимаете за пределами вашего ввода, событие запускается. Работает на текущей версии Chrome и Firefox, а IE9$("#input").on("input focusout",function(e){
Текстовые вводы не запускают
change
событие, пока не потеряют фокус. Нажмите за пределами ввода, и появится предупреждение.Если обратный вызов должен сработать до того, как ввод текста потеряет фокус, используйте
.keyup()
событие.источник
change
здесь работает: jsfiddle.net/g6pcp ;keyup
оповещение после каждого ключа, который не является хорошим способомalert()
. Это сделает отладку намного проще.onkeyup, onpaste, onchange, oninput
кажется, что происходит сбой, когда браузер выполняет автозаполнение текстовых полей. Чтобы обработать такой случай, включите "autocomplete='off'
" в текстовое поле, чтобы браузер не заполнял текстовое поле автоматически,Например,
источник
В моем случае у меня было текстовое поле, которое было прикреплено к средству выбора даты. Единственное решение, которое сработало для меня, - это обработать его внутри события onSelect средства выбора даты.
источник
Я думаю, что вы
keydown
тоже можете использовать :источник
РАБОТАЕТ:
источник