Saya mendapatkan:
$(someTextInputField).keypress(function() {
alert($(this).val());
});
Sekarang peringatan selalu mengembalikan nilai SEBELUM menekan tombol (misalnya bidang kosong, saya ketik 'a' dan peringatan memberi saya ". Lalu saya mengetik 'b' dan peringatan memberi saya 'a' ...). Tapi saya ingin nilainya SETELAH tombol ditekan - bagaimana saya bisa melakukannya?
Latar Belakang: Saya ingin mengaktifkan tombol segera setelah bidang teks berisi setidaknya satu karakter. Jadi saya menjalankan tes ini pada setiap acara penekanan tombol, tetapi menggunakan val yang dikembalikan () hasilnya selalu satu langkah di belakang. Menggunakan peristiwa change () bukan pilihan bagi saya karena tombol akan dinonaktifkan hingga Anda meninggalkan kotak teks. Jika ada cara yang lebih baik untuk melakukan itu, saya senang mendengarnya!
sumber
Jawaban:
Ubah
keypress
kekeyup
:keypress
ditembakkan saat tombol ditekan,keyup
ditembakkan saat kunci dilepaskan.sumber
Terkejut karena tidak ada yang menyebutkan acara "input" js:
Direkomendasikan.
https://developer.mozilla.org/en-US/docs/Web/Events/input
sumber
bukannya menekan tombol, gunakan keyup .
sumber
Sebagai alternatif, Anda dapat menggunakan peristiwa keydown dengan waktu tunggu 0.
Dengan begitu, perubahan akan diterapkan secara instan, alih-alih diterapkan saat pengguna berhenti menahan kunci.
sumber
Anda mungkin ingin menghubungkan
onchange
event handler daripada menggunakan salah satu event utama.Menggunakan
Edit > Paste
atau Klik Kanan lalu Tempel akan mengaktifkan peristiwa perubahan, tetapi bukan peristiwa penting. Perhatikan bahwa beberapa browser mungkin mensimulasikan peristiwa penting pada sebuah tempel (meskipun saya tidak tahu apa-apa) tetapi Anda tidak dapat mengandalkan perilaku itu.sumber
Coba sesuatu seperti ini:
Itu hanya memperkenalkan waktu tunggu sehingga setelah perulangan peristiwa "penekanan tombol" selesai, kode Anda akan segera berjalan setelahnya. Interval pengatur waktu yang singkat (meskipun dibulatkan oleh browser) tidak akan terlihat.
edit - atau Anda dapat menggunakan "keyup" seperti yang dikatakan orang lain, meskipun semantiknya berbeda.
sumber