<select>
имеет этот API. Как насчет <input>
?
174
Ты можешь использовать .change()
$('input[name=myInput]').change(function() { ... });
Тем не менее, это событие будет срабатывать только тогда, когда селектор потерял фокус, поэтому вам нужно будет щелкнуть в другом месте, чтобы выполнить эту работу.
Если это не совсем подходит для вас, вы можете использовать некоторые другие события jQuery, такие как keyup , keydown или keypress - в зависимости от того, какой именно эффект вы хотите.
change
срабатывает только тогда, когда элемент ввода потерял фокус. Существует такжеinput
событие, которое срабатывает всякий раз, когда текстовое поле обновляется, и при этом не нужно терять фокус. В отличие от ключевых событий, он также работает для вставки / перетаскивания текста.change
как IE9 не поддерживается, вы можете использовать егоfocusout
для того же ассортиментаКак сказал @pimvdb в своем комментарии,
(См. Документацию .)
Это так полезно, это стоит поставить в ответ. В настоящее время (v1.8 *?) В jquery нет удобства .input () для fn, поэтому способ сделать это
источник
$('form').on('change input', function);
сделали свое дело для меня. Спасибо.Я бы предложил использовать событие keyup примерно так:
Есть несколько способов достижения того же результата, поэтому я полагаю, что это зависит от предпочтений и зависит от того, как вы хотите, чтобы он работал точно.
Обновление: это работает только для ручного ввода, а не копирования и вставки.
Для копирования и вставки я бы рекомендовал следующее:
источник
Вот код, который я использую:
Это работает довольно хорошо, особенно в сочетании с
jqGrid
контролем. Вы можете просто ввести текстовое поле и сразу же просмотреть результаты в вашемjqGrid
.источник
Существует один и только один надежный способ сделать это , вытягивая значение в интервале и сравнивая его с кэшированным значением.
Причина, по которой это единственный способ, заключается в том, что существует несколько способов изменить поле ввода, используя различные вводы (клавиатура, мышь, вставка, история браузера, голосовой ввод и т. Д.), И вы никогда не сможете обнаружить их все, используя стандартные события в кросс взрослая среда.
К счастью, благодаря инфраструктуре событий в jQuery довольно легко добавить собственное событие inputchange. Я сделал это здесь:
Используйте это как:
$('input').on('inputchange', function() { console.log(this.value) });
Здесь есть демо: http://jsfiddle.net/LGAWY/
Если вы боитесь нескольких интервалов, вы можете привязать / отменить это событие на
focus
/blur
.источник
$('body').on('inputchange', 'input', function() { console.log(this.value) });
? Или нет, как упомянуто здесь: github.com/EightMedia/hammer.js/pull/98 ?Я рекомендую использовать
this
ключевое слово, чтобы получить доступ ко всему элементу, чтобы вы могли делать все необходимое с этим элементом.источник
Следующее будет работать, даже если это динамические / Ajax вызовы.
Автор сценария:
Html,
Я надеюсь, что этот рабочий код поможет тому, кто пытается получить динамический доступ к Ajax-вызовам ...
источник
источник
Вы можете просто работать с идентификатором
источник
Вы можете сделать это по-разному, Keyup является одним из них. Но я приведу пример с изменениями.
Примечание: input [name = "vat_id"] замените на ваш идентификатор ввода или имя .
источник
Если вы хотите вызвать событие при вводе , используйте следующее:
Если вы хотите вызвать событие при выходе из поля ввода , используйте следующее:
источник
$(document).on('change', 'input[name=myInput]', function() { ... });
источник
Это сработало для меня. Если щелкнуть поле с именем fieldA или ввести любой ключ, то поле будет обновлено с id fieldB .
источник
Вы могли бы использовать
.keypress()
.Например, рассмотрим HTML:
Обработчик события может быть связан с полем ввода:
Я полностью согласен с Энди; все зависит от того, как вы хотите, чтобы это работало.
источник