Saya ingin menangkap jika ada perubahan yang terjadi <textarea>
. Seperti mengetik karakter apa saja (menghapus, backspace) atau klik mouse dan tempel atau potong. Apakah ada acara jQuery yang dapat memicu untuk semua acara itu?
Saya mencoba mengubah acara, tetapi memicu callback hanya setelah keluar dari komponen.
Gunakan : Saya ingin mengaktifkan tombol jika a <textarea>
mengandung teks apa pun.
javascript
jquery
jquery-ui
Lolly
sumber
sumber
Jawaban:
Coba ini sebenarnya:
DEMO
Itu berfungsi untuk setiap perubahan yang Anda buat, mengetik, memotong, menempel.
sumber
propertychange
ada jugainput
<input type="text">
, bukan<textarea>
bind
sudah ditinggalkan. Gunakanon
:Catatan: Kode di atas akan aktif beberapa kali, satu kali untuk setiap tipe pemicu yang cocok. Untuk mengatasinya, lakukan sesuatu seperti ini:
Demo jsFiddle
sumber
on("change", function() ....
bagian tidak bekerja untuk saya. Tidak memicu peringatan, atau log konsol, apa pun. Untuk keyup bekerja seperti pesona.on("change", function() ...
adalah hanya dipecat ketika textarea kehilangan fokus . Rujuk pertanyaan saya sebelumnya untuk ini, dan cobalah biola ini - ubah textarea, lalu klik di luar textarea, dan Anda akan melihat perubahan event menyala.Gunakan suatu
input
acara.sumber
Pertanyaan ini membutuhkan jawaban yang lebih mutakhir, dengan sumber-sumber. Inilah yang sebenarnya berhasil (meskipun Anda tidak harus mengambil kata saya untuk itu):
1: https://developer.mozilla.org/en-US/docs/Web/Events/input#Browser_compatibility
2: oninput di IE9 tidak menyala ketika kita menekan 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
TETAPI, untuk solusi yang lebih global yang dapat Anda gunakan di seluruh proyek Anda , saya sarankan menggunakan plugin textchange jQuery untuk mendapatkan acara baru yang kompatibel lintas-browser
textchange
. Ini dikembangkan oleh orang yang sama yang menerapkanonChange
acara yang setara untuk ReactJS Facebook, yang mereka gunakan untuk hampir seluruh situs web mereka. Dan saya pikir aman untuk mengatakan, jika itu solusi yang cukup kuat untuk Facebook, itu mungkin cukup kuat untuk Anda. :-)PEMBARUAN: Jika Anda membutuhkan fitur seperti dukungan seret dan lepas di Internet Explorer, Anda mungkin ingin memeriksa
pandell
garpu yang lebih baru diperbaruijquery-splendid-textchange
.sumber
2018, tanpa JQUERY
Pertanyaannya adalah dengan JQuery, itu hanya FYI.
JS
HTML
sumber
Ini versi lain (modern) tetapi sedikit berbeda dari yang disebutkan sebelumnya. Diuji dengan IE9:
Untuk browser yang sudah ketinggalan zaman, Anda juga dapat menambahkan
selectionchange
danpropertychange
(seperti yang disebutkan dalam jawaban lain). Tetapiselectionchange
tidak berhasil untuk saya di IE9. Itu sebabnya saya menambahkankeyup
.sumber
Coba lakukan dengan fokus
sumber
coba ini ...
sumber
.delegate adalah satu-satunya yang berfungsi untuk saya dengan jQuery JavaScript Library v2.1.1
sumber
Setelah beberapa percobaan saya datang dengan implementasi ini:
Menangani perubahan untuk segala jenis input dan memilih serta textareas mengabaikan tombol panah dan hal-hal seperti ctrl, cmd, tombol fungsi, dll.
Catatan: Saya hanya mencoba ini di FF karena ini untuk add-on FF.
sumber
Coba ini
sumber
$("#textarea").on('change keyup paste', function() {})
dan$('textarea').trigger('change');
dapat mengatasi masalah yang mencegahpaste
untuk bekerja secara otomatis!