Saya telah melihat banyak pertanyaan lain dan menemukan jawaban yang sangat sederhana, termasuk kode di bawah ini. Saya hanya ingin mendeteksi ketika seseorang mengubah isi kotak teks tetapi untuk beberapa alasan itu tidak berfungsi ... Saya tidak mendapatkan kesalahan konsol. Ketika saya mengatur breakpoint di browser pada change()
fungsi itu tidak pernah mengenai itu.
$('#inputDatabaseName').change(function () {
alert('test');
});
<input id="inputDatabaseName">
Jawaban:
Anda dapat menggunakan
input
acara Javascript di jQuery seperti ini:Dalam JavaScript murni:
Atau seperti ini:
sumber
coba keyup alih-alih perubahan.
Berikut dokumentasi resmi jQuery untuk .keyup () .
sumber
Setiap jawaban kehilangan beberapa poin, jadi inilah solusi saya:
The
Input Event
kebakaran di Keyboard input, mouse Drag , Autofill dan Copy-Paste diuji pada Chrome dan Firefox. Memeriksa nilai sebelumnya membuatnya mendeteksi perubahan nyata, yang berarti tidak menembak ketika menempelkan hal yang sama atau mengetik karakter yang sama atau lain-lain.Contoh kerja: http://jsfiddle.net/g6pcp/473/
memperbarui:
Dan jika Anda ingin menjalankan
change function
hanya saat pengguna selesai mengetik dan mencegah memecat tindakan perubahan beberapa kali, Anda dapat mencoba ini:Jika pengguna mulai mengetik (mis. "Foobar") kode ini mencegah Anda
change action
untuk menjalankan untuk setiap jenis pengguna huruf dan dan hanya berjalan ketika pengguna berhenti mengetik, Ini bagus khususnya ketika Anda mengirim input ke server (mis. Input pencarian), yang cara Server tidak hanya satu pencarianfoobar
dan tidak enam pencarian untukf
kemudianfo
dan kemudianfoo
danfoob
dan sebagainya.sumber
$("#input").focusout(function () {})
. Ketika Anda mengklik di luar input Anda, acara tersebut diaktifkan. Bekerja pada versi Chrome dan Firefox saat ini, dan IE9$("#input").on("input focusout",function(e){
Input teks tidak memecat
change
acara sampai kehilangan fokus. Klik di luar input dan peringatan akan ditampilkan.Jika panggilan balik harus diaktifkan sebelum input teks kehilangan fokus, gunakan
.keyup()
acara tersebut.sumber
change
bekerja di sini: jsfiddle.net/g6pcp ;keyup
waspada setelah setiap tombol yang bukan cara yang baikalert()
. Ini akan membuat proses debug jadi lebih mudah.onkeyup, onpaste, onchange, oninput
tampaknya gagal ketika browser melakukan pengisian otomatis pada kotak teks. Untuk menangani kasus seperti ini, sertakan "autocomplete='off'
" di bidang teks Anda untuk mencegah browser mengisi ulang kotak teks secara otomatis,Misalnya,
sumber
Dalam kasus saya, saya memiliki kotak teks yang dilampirkan ke datepicker. Satu-satunya solusi yang bekerja untuk saya adalah menanganinya di dalam event onSelect dari datepicker.
sumber
Saya pikir Anda dapat menggunakan
keydown
juga:sumber
KERJA:
sumber