Kecuali changehanya kebakaran setelah lapangan kehilangan fokus. inputsegera terbakar.
jcsanyi
3
Sudahkah Anda mencoba mencarinya?
undefined
2
@undefined Ya saya punya, kalau tidak saya tidak akan membuat pertanyaan untuk itu. Satu-satunya hal yang muncul di Google adalah artikel tentang input elemen dan cara melampirkan acara ke sana.
Terjadi ketika konten teks elemen diubah melalui antarmuka pengguna.
Ini bukan alias untuk keyupkarena keyupakan menyala meskipun kunci tidak melakukan apa-apa (misalnya: menekan dan kemudian melepaskan tombol Kontrol akan memicukeyup peristiwa).
Cara yang baik untuk memikirkannya adalah seperti ini: ini adalah peristiwa yang memicu setiap kali input berubah. Ini termasuk - tetapi tidak terbatas pada - menekan tombol yang mengubah input (jadi, misalnya, Ctrldengan sendirinya tidak akan memicu acara, tetapiCtrl-V untuk menempelkan beberapa teks), memilih opsi pelengkapan otomatis, tengah bergaya Linux -Klik tempel, seret-dan-jatuhkan, dan banyak hal lainnya.
Lihat halaman ini dan komentar pada jawaban ini untuk lebih jelasnya.
Apakah Anda tahu jika jQuery membuat dukungan browser yang hilang? (IE8, IE9 inkonsistensi, dll)
jcsanyi
4
Saya baru saja googled 'js input event'. Ada kemampuan untuk mengetahui istilah apa yang digunakan untuk menemukan apa yang Anda inginkan di google; itu datang dengan pengalaman. Dan kemudian, tentu saja, Google mencatat semuanya dan menggunakannya untuk mempelajari apa yang sebenarnya Anda inginkan. Sebagian besar pencarian saya adalah untuk dokumen API dan pertanyaan pemrograman, jadi setelah beberapa waktu saya mengetahui bahwa ketika saya mencari hal-hal itu mungkin harus menunjukkan kepada saya dokumentasi API dan jawaban pemrograman.
J David Smith
3
Yah, saya sedang mencari "acara masukan jQuery", saya tidak tahu itu adalah acara JS asli. Sama di sini, hasil pertama biasanya dari SO, yang saya anggap sebagian besar sebagai jawaban de facto / sumber informasi resmi.
Silkfire
18
inputsebenarnya lebih dari sekadar yang difilter keyup, misalnya akan diaktifkan juga ketika nilai dipilih dari daftar nilai yang sebelumnya digunakan ... Itu adalah sesuatu yang akan sangat sulit ditangani jika tidak ada inputperistiwa.
szeryf
2
oninputjuga menyala ketika teks diubah oleh mouse (baik melalui seret dan lepas, atau melalui menu klik kanan atau klik tengah untuk menempel).
Denilson Sá Maia
157
oninput Peristiwa sangat berguna untuk melacak perubahan bidang input.
Namun itu tidak didukung dalam versi IE <9. Tetapi versi IE yang lebih lama memiliki acara milik sendiri onpropertychangeyang melakukan hal yang sama seperti oninput.
Jadi Anda bisa menggunakannya dengan cara ini:
$(':input').on('input propertychange');
Untuk memiliki dukungan crossbrowser penuh.
Karena perubahan properti dapat dipicu untuk perubahan properti APAPUN, misalnya, properti yang dinonaktifkan diubah, maka Anda ingin menyertakan ini:
Apa yang saya butuhkan. Terima kasih. (Saya benci harus mendukung <IE9.)
DaleyKD
Beberapa info lebih lanjut: "Opera tidak memecat suatu peristiwa input setelah menjatuhkan teks di bidang input. IE 9 tidak memecat suatu peristiwa input ketika pengguna menghapus karakter dari input yang diisi oleh keyboard, memotong, atau menyeret operasi." developer.mozilla.org/en-US/docs/Web/Events/…
tkane2000
Ada masalah dengan kode ini. Jika panjang maksimum diatur pada elemen input, peristiwa 'input' dipicu bahkan ketika panjang maks tercapai dan nilainya tidak berubah
nivcaner
Tetapi mengapa tidak hanya dua fungsi yang terpisah? Dengan begitu, tidak perlu memeriksa jenis acara atau nama properti. Kode bisa berada dalam fungsi bersama ketiga.
inputNamun, dengan acara tersebut, hanya pola kedua yang tampaknya berfungsi di browser yang telah saya uji.
Dengan demikian, Anda berharap ini berfungsi, tetapi TIDAK (setidaknya saat ini):
$(':text').input(function(){ doSomething();});
Sekali lagi, jika Anda ingin memanfaatkan delegasi acara (mis. Untuk menyiapkan acara #containersebelum Anda input.textditambahkan ke DOM), ini akan muncul di pikiran:
Seperti yang dikatakan claustrofob, oninput didukung untuk IE9 +.
Namun , "Acara oninput bermasalah di Internet Explorer 9. Itu tidak dipecat ketika karakter dihapus dari bidang teks melalui antarmuka pengguna hanya ketika karakter dimasukkan. Meskipun acara pertukaran properti didukung di Internet Explorer 9, tetapi serupa dengan oninput acara, itu juga buggy, tidak dipecat saat dihapus.
Karena karakter dapat dihapus dengan beberapa cara (Backspace dan tombol Delete, CTRL + X, perintah Cut dan Delete dalam menu konteks), tidak ada solusi yang baik untuk mendeteksi semua perubahan. Jika karakter dihapus oleh perintah Hapus dari menu konteks, modifikasi tidak dapat dideteksi dalam JavaScript di Internet Explorer 9. "
Saya memiliki hasil yang baik yang mengikat input dan keyup (dan keydown, jika Anda ingin menjalankannya di IE sambil menahan tombol Backspace).
Saya pikir 'input' hanya bekerja di sini dengan cara yang sama 'oninput' dalam Model Acara DOM Level O.
Kebetulan:
Sama seperti silkfire berkomentar, saya juga mencari di Google untuk 'jQuery input event'. Jadi saya dituntun ke sini dan terkejut mengetahui bahwa 'input' adalah parameter yang dapat diterima untuk perintah bind () jquery . Dalam jQuery in Action (p. 102, 2008 ed.) 'Input' tidak disebutkan sebagai peristiwa yang mungkin terjadi (terhadap 20 lainnya, dari 'blur' hingga 'unload'). Memang benar bahwa, pada hal. 92, kebalikannya dapat diperkirakan dari membaca ulang (yaitu dari referensi ke pengidentifikasi string yang berbeda antara model Level 0 dan Level 2). Itu cukup menyesatkan.
change
hanya kebakaran setelah lapangan kehilangan fokus.input
segera terbakar.input
elemen dan cara melampirkan acara ke sana.Jawaban:
Ini bukan alias untuk
keyup
karenakeyup
akan menyala meskipun kunci tidak melakukan apa-apa (misalnya: menekan dan kemudian melepaskan tombol Kontrol akan memicukeyup
peristiwa).Cara yang baik untuk memikirkannya adalah seperti ini: ini adalah peristiwa yang memicu setiap kali input berubah. Ini termasuk - tetapi tidak terbatas pada - menekan tombol yang mengubah input (jadi, misalnya,
Ctrl
dengan sendirinya tidak akan memicu acara, tetapiCtrl-V
untuk menempelkan beberapa teks), memilih opsi pelengkapan otomatis, tengah bergaya Linux -Klik tempel, seret-dan-jatuhkan, dan banyak hal lainnya.Lihat halaman ini dan komentar pada jawaban ini untuk lebih jelasnya.
sumber
input
sebenarnya lebih dari sekadar yang difilterkeyup
, misalnya akan diaktifkan juga ketika nilai dipilih dari daftar nilai yang sebelumnya digunakan ... Itu adalah sesuatu yang akan sangat sulit ditangani jika tidak adainput
peristiwa.oninput
juga menyala ketika teks diubah oleh mouse (baik melalui seret dan lepas, atau melalui menu klik kanan atau klik tengah untuk menempel).oninput
Peristiwa sangat berguna untuk melacak perubahan bidang input.Namun itu tidak didukung dalam versi IE <9. Tetapi versi IE yang lebih lama memiliki acara milik sendiri
onpropertychange
yang melakukan hal yang sama sepertioninput
.Jadi Anda bisa menggunakannya dengan cara ini:
Untuk memiliki dukungan crossbrowser penuh.
Karena perubahan properti dapat dipicu untuk perubahan properti APAPUN, misalnya, properti yang dinonaktifkan diubah, maka Anda ingin menyertakan ini:
sumber
Menggunakan jQuery, efek berikut identik:
input
Namun, dengan acara tersebut, hanya pola kedua yang tampaknya berfungsi di browser yang telah saya uji.Dengan demikian, Anda berharap ini berfungsi, tetapi TIDAK (setidaknya saat ini):
Sekali lagi, jika Anda ingin memanfaatkan delegasi acara (mis. Untuk menyiapkan acara
#container
sebelum Andainput.text
ditambahkan ke DOM), ini akan muncul di pikiran:Sayangnya, sekali lagi, ini TIDAK berfungsi saat ini!
Hanya pola ini yang berfungsi:
DIedit DENGAN INFORMASI LEBIH LANJUT
Saya pasti dapat mengkonfirmasi bahwa pola ini:
SEKARANG BEKERJA juga, di semua browser 'standar'.
sumber
Seperti yang dikatakan claustrofob, oninput didukung untuk IE9 +.
Namun , "Acara oninput bermasalah di Internet Explorer 9. Itu tidak dipecat ketika karakter dihapus dari bidang teks melalui antarmuka pengguna hanya ketika karakter dimasukkan. Meskipun acara pertukaran properti didukung di Internet Explorer 9, tetapi serupa dengan oninput acara, itu juga buggy, tidak dipecat saat dihapus.
Karena karakter dapat dihapus dengan beberapa cara (Backspace dan tombol Delete, CTRL + X, perintah Cut dan Delete dalam menu konteks), tidak ada solusi yang baik untuk mendeteksi semua perubahan. Jika karakter dihapus oleh perintah Hapus dari menu konteks, modifikasi tidak dapat dideteksi dalam JavaScript di Internet Explorer 9. "
Saya memiliki hasil yang baik yang mengikat input dan keyup (dan keydown, jika Anda ingin menjalankannya di IE sambil menahan tombol Backspace).
sumber
Hati-hati saat menggunakan INPUT. Acara ini diaktifkan pada fokus dan kabur di IE 11. Tetapi dipicu pada perubahan di browser lain.
https://connect.microsoft.com/IE/feedback/details/810538/ie-11-fires-input-event-on-focus
sumber
Saya pikir 'input' hanya bekerja di sini dengan cara yang sama 'oninput' dalam Model Acara DOM Level O.
Kebetulan:
Sama seperti silkfire berkomentar, saya juga mencari di Google untuk 'jQuery input event'. Jadi saya dituntun ke sini dan terkejut mengetahui bahwa 'input' adalah parameter yang dapat diterima untuk perintah bind () jquery . Dalam jQuery in Action (p. 102, 2008 ed.) 'Input' tidak disebutkan sebagai peristiwa yang mungkin terjadi (terhadap 20 lainnya, dari 'blur' hingga 'unload'). Memang benar bahwa, pada hal. 92, kebalikannya dapat diperkirakan dari membaca ulang (yaitu dari referensi ke pengidentifikasi string yang berbeda antara model Level 0 dan Level 2). Itu cukup menyesatkan.
sumber
jQuery memiliki tanda tangan berikut untuk
.on()
metode ini:.on( events [, selector ] [, data ], handler )
Acara dapat berupa siapa saja yang terdaftar di referensi ini:
https://developer.mozilla.org/en-US/docs/Web/Events
Padahal, mereka tidak semua didukung oleh setiap browser.
Mozilla menyatakan yang berikut tentang acara masukan:
sumber
bekerja di IE dan chrome
sumber
bind
sudah usang, gunakanon