Saya ingin mendeteksi apakah pengguna telah menekan Entermenggunakan jQuery.
Bagaimana ini mungkin? Apakah itu memerlukan plugin?
EDIT: Sepertinya saya perlu menggunakan keypress()
metode ini.
Saya ingin tahu apakah ada yang tahu jika ada masalah browser dengan perintah itu - seperti apakah ada masalah kompatibilitas browser yang harus saya ketahui?
Jawaban:
Inti dari jQuery adalah Anda tidak perlu khawatir tentang perbedaan browser. Saya cukup yakin Anda bisa aman dengan entermenjadi 13 di semua browser. Maka dengan itu dalam pikiran, Anda dapat melakukan ini:
sumber
$(window)
bawah IE) quirksmode.org/dom/events/keys.htmlSaya menulis sebuah plugin kecil untuk membuatnya lebih mudah untuk mengikat acara "saat tombol enter ditekan":
Pemakaian:
sumber
#input
di<input>
lapangan)$("#input").on("someevent","someselector",function () {})
Saya tidak bisa mendapatkan kode yang diposting oleh @Paolo Bergantino untuk bekerja tetapi ketika saya mengubahnya
$(document)
dane.which
bukannyae.keyCode
kemudian saya menemukan itu berfungsi dengan sempurna.Tautkan ke contoh di JS Bin
sumber
Saya menemukan ini lebih kompatibel lintas-browser:
sumber
Anda dapat melakukan ini menggunakan handle acara jquery 'keydown'
sumber
Gunakan
event.key
dan JS modern!atau tanpa jQuery:
Mozilla Docs
Browser yang Didukung
sumber
Saya menghabiskan beberapa waktu dengan solusi ini, saya harap ini membantu seseorang.
sumber
Ada metode acara yang menekan tombol () . Nomor ascii tombol Enter adalah 13 dan tidak tergantung pada browser yang digunakan.
sumber
Sebuah ekstensi kecil dari jawaban Andrea di atas membuat metode helper lebih berguna ketika Anda mungkin juga ingin menangkap pers yang dimodifikasi (yaitu ctrl-enter atau shift-enter). Misalnya, varian ini memungkinkan pengikatan seperti:
untuk mengirimkan formulir ketika pengguna menekan ctrl-enter dengan fokus pada textarea formulir itu.
(lihat juga Ctrl + Enter jQuery di TEXTAREA )
sumber
Dalam beberapa kasus, Anda mungkin perlu menekan ENTERtombol untuk area halaman tertentu tetapi tidak untuk area halaman lain, seperti halaman di bawah ini yang berisi header
<div>
dengan bidang SEARCH .Butuh sedikit waktu untuk mencari tahu bagaimana melakukan ini, dan saya memposting contoh sederhana namun lengkap ini di sini untuk komunitas.
Tautan ke JSFiddle Playground :
[Submit]
Tombol tidak melakukan apa-apa, tetapi menekan ENTERdari salah satu kontrol Kotak Teks tidak akan mengirimkan formulir.sumber
Coba ini untuk mendeteksi tombol Enter yang ditekan.
Lihat demo @ deteksi tekan tombol enter pada keyboard
sumber
Karena
keypress
acara tidak dicakup oleh spesifikasi resmi apa pun, perilaku sebenarnya yang ditemui saat menggunakannya dapat berbeda di seluruh browser, versi browser, dan platform.Semoga bermanfaat!
sumber
keypress
tidak ada dalam spesifikasi (lagi) adalah karena sudah tidak digunakan lagi ( MDN ).Cara mudah untuk mendeteksi apakah pengguna telah menekan enter adalah dengan menggunakan nomor tombol, masukkan nomor tombol = 13 untuk memeriksa nilai kunci pada perangkat Anda
dengan menekan tombol enter Anda akan mendapatkan hasil sebagai 13. menggunakan nilai kunci Anda dapat memanggil suatu fungsi atau melakukan apa pun yang Anda inginkan
jika Anda ingin menargetkan tombol begitu tombol enter ditekan, Anda dapat menggunakan kode
Semoga ini bisa membantu
sumber
Saya pikir metode paling sederhana akan menggunakan vanilla javacript:
sumber
sumber
sumber
Saya menggunakan
$(document).on("keydown")
.Pada beberapa browser
keyCode
tidak didukung. Sama denganwhich
jadi jikakeyCode
tidak didukung Anda perlu menggunakanwhich
dan sebaliknya.sumber