Я хочу захватить, если какие-либо изменения произошли с <textarea>
. Например, ввод любых символов (удаление, возврат) или щелчок мышью и вставка или вырезание. Есть ли событие jQuery, которое может запускаться для всех этих событий?
Я попытался изменить событие, но он вызывает обратный вызов только после выхода из компонента.
Использование : я хочу включить кнопку, если <textarea>
текст содержит какой-либо текст.
javascript
jquery
jquery-ui
Лолли
источник
источник
Ответы:
Попробуйте это на самом деле:
DEMO
Это работает для любых изменений, которые вы делаете, печатать, вырезать, вставлять.
источник
propertychange
нет,input
<input type="text">
, а не<textarea>
bind
устарела. Используйтеon
:Примечание. Приведенный выше код будет срабатывать несколько раз, по одному разу для каждого соответствующего типа триггера. Чтобы справиться с этим, сделайте что-то вроде этого:
jsFiddle Demo
источник
on("change", function() ....
часть не работает для меня. Не вызывает ни предупреждений, ни консольных журналов, ничего. Для Keyup работает как шарм, хотя.on("change", function() ...
будет уволен только тогда , когда текстовое поле теряет фокус . Для этого обратитесь к моему предыдущему вопросу и попробуйте его на этой скрипке - измените текстовую область, затем щелкните за пределами текстовой области, и вы должны увидеть запуск события изменения.Используйте
input
событие.источник
На этот вопрос требовался более актуальный ответ с источниками. Вот что на самом деле работает (хотя вы не должны верить мне на слово):
1: https://developer.mozilla.org/en-US/docs/Web/Events/input#Browser_compatibility
2: oninput в IE9 не срабатывает, когда мы нажимаем BACKSPACE / DEL / do CUT
3: https: // msdn .microsoft.com / en-us / library / ms536956 (v = vs.85) .aspx
4: http://api.jquery.com/prop/#prop-propertyName-function
НО, для более глобального решения, которое вы можете использовать в своем проекте , я рекомендую использовать плагин textchange jQuery, чтобы получить новое, совместимое с браузером
textchange
событие. Он был разработан тем же человеком, который реализовал аналогичноеonChange
событие для ReactJS Facebook, которое они используют почти для всего своего сайта. И я думаю, можно с уверенностью сказать, что если это достаточно надежное решение для Facebook, оно, вероятно, достаточно надежно для вас. :-)ОБНОВЛЕНИЕ: если вам понадобятся такие функции, как поддержка перетаскивания в Internet Explorer, вы можете вместо этого попробовать
pandell
недавно обновленную ветвьjquery-splendid-textchange
.источник
2018, без JQUERY
Вопрос с JQuery, это просто FYI.
JS
HTML
источник
Вот еще одна (современная), но немного другая версия, чем упомянутые ранее. Протестировано с IE9:
Для устаревших браузеров вы также можете добавить
selectionchange
иpropertychange
(как упоминалось в других ответах). Ноselectionchange
у меня не сработало в IE9. Вот почему я добавилkeyup
.источник
Попробуйте сделать это с фокусом
источник
попробуй это ...
источник
.delegate - единственный, кто работает со мной с jQuery JavaScript Library v2.1.1
источник
После некоторых экспериментов я придумал эту реализацию:
Обрабатывает изменения для любого вида ввода и выбора, а также текстовые области, игнорируя клавиши со стрелками и такие вещи, как ctrl, cmd, функциональные клавиши и т. Д.
Примечание: я пробовал это только в FF, так как это для дополнения FF.
источник
Попробуй это
источник
$("#textarea").on('change keyup paste', function() {})
и$('textarea').trigger('change');
может решить проблему, которая мешаетpaste
работать автоматически!