Bagaimana cara memblokir karakter khusus agar tidak diketik ke dalam kolom input dengan jquery?
jquery
special-characters
alphanumeric
Nerd Stalker
sumber
sumber
Jawaban:
Contoh sederhana menggunakan ekspresi reguler yang dapat Anda ubah untuk mengizinkan / melarang apa pun yang Anda suka.
sumber
Saya mencari jawaban yang membatasi masukan hanya untuk karakter alfanumerik, tetapi masih diperbolehkan untuk penggunaan karakter kontrol (misalnya, spasi mundur, hapus, tab) dan salin + tempel. Tak satu pun dari jawaban yang diberikan yang saya coba memenuhi semua persyaratan ini, jadi saya datang dengan yang berikut menggunakan
input
acara tersebut.Sunting:
Seperti yang ditunjukkan rinogo di komentar, potongan kode di atas memaksa kursor ke akhir masukan saat mengetik di tengah teks masukan. Saya yakin potongan kode di bawah ini menyelesaikan masalah ini.
sumber
event.which
atauevent.keycode
! Seandainya aku bisa +10!Jawaban singkat: cegah acara 'penekanan tombol':
Jawaban panjang: Gunakan plugin seperti jquery.alphanum
Ada beberapa hal yang perlu dipertimbangkan saat memilih solusi:
Saya pikir area ini cukup kompleks untuk menjamin penggunaan plugin pihak ketiga. Saya mencoba beberapa plugin yang tersedia tetapi menemukan beberapa masalah dengan masing-masing plugin sehingga saya melanjutkan dan menulis jquery.alphanum . Kodenya terlihat seperti ini:
Atau untuk kontrol yang lebih halus, tambahkan beberapa pengaturan:
Semoga membantu.
sumber
allow
pengaturan. Tapi itulah keindahan plugin jquery, fakta bahwa Anda dapat memodifikasinya sesuai dengan kebutuhan Anda. Terima kasih!allow
opsi dan berfungsi dengan baik bagi saya menggunakan kode ini:$('#firstName').alphanum({allow: "/"});
Adakah kemungkinan Anda dapat memberikan info lebih lanjut? Jika ada bug atau masalah dengan dokumen, alangkah baiknya untuk memperbaikinya. CheersallowOtherCharSets: false
danallowCaseless: false
. Ini mengganggu pengaturan yang ditetapkanallow
. Dari sudut pandang saya, menurut sayaallow
opsi tersebut harus memveto semua opsi lain (sepertiallowOtherCharSets
atauallowCaseless
). Jadi jika Anda menentukan karakter dalamallow
opsi, itu harus diizinkan terlepas dari opsi lain yang disetel dalam objek konfigurasi. Hal yang sama berlaku untukdisallow
. Tapi ini hanya pendapat saya. :) Bersulang lagi! :)allow
dandisallow
memiliki prioritas yang lebih tinggi. Ini masuk masalah # 7 . Semoga membantuGunakan atribut input pola HTML5!
sumber
Kotak teks Anda:
Javascript Anda:
sumber
Gunakan regex untuk mengizinkan / melarang apa pun. Selain itu, untuk versi yang sedikit lebih kuat daripada jawaban yang diterima, mengizinkan karakter yang tidak memiliki nilai kunci yang terkait dengannya (spasi mundur, tab, tombol panah, hapus, dll.) Dapat dilakukan dengan terlebih dahulu melewati peristiwa penekanan tombol dan periksa kunci berdasarkan kode kunci, bukan nilai.
sumber
Lihatlah plugin alfanumerik jQuery. https://github.com/KevinSheedy/jquery.alphanum
sumber
Tulis beberapa kode javascript pada acara onkeypress dari textbox. sesuai persyaratan mengizinkan dan membatasi karakter di kotak teks Anda
sumber
Saya menggunakan kode ini memodifikasi orang lain yang saya lihat. Hanya grand untuk pengguna menulis jika tombol yang ditekan atau ditempelkan teks lulus tes pola (cocok) (contoh ini adalah input teks yang hanya memungkinkan 8 digit)
sumber
!e.charCode ? e.which : e.charCode
dan tidak sederhanae.charCode ? e.charCode : e.which
?ini adalah contoh yang mencegah pengguna mengetik karakter "a"
refence kode kunci di sini:
http://www.expandinghead.net/keycode.html
sumber
sumber
Ya, Anda dapat melakukannya dengan menggunakan jQuery sebagai:
dan skrip untuk user_availability.php Anda adalah:
Saya mencoba menambahkan untuk / dan \ tetapi tidak berhasil.
Anda juga dapat melakukannya dengan menggunakan javascript & kode akan menjadi:
sumber
angkanya saja:
atau untuk waktu termasuk ":"
juga termasuk delete dan backspace:
sayangnya tidak membuatnya berfungsi di iMAC
sumber
Ingin mengomentari komentar Alex atas jawaban Dale. Tidak mungkin (pertama perlu berapa banyak "rep"? Itu tidak akan terjadi segera .. sistem aneh.) Jadi sebagai jawaban:
Backspace dapat ditambahkan dengan menambahkan \ b ke definisi regex seperti ini: [a-zA-Z0-9 \ b]. Atau Anda cukup mengizinkan seluruh rentang Latin, termasuk karakter "tidak eksotis" apa pun (juga mengontrol karakter seperti spasi mundur): ^ [\ u0000- \ u024F \ u20AC] + $
Hanya karakter unicode asli di luar latin ada tanda euro (20ac), tambahkan apa pun yang mungkin Anda butuhkan.
Untuk juga menangani masukan yang dimasukkan melalui salin & tempel, cukup ikat juga ke acara "ubah" dan periksa juga masukan di sana - menghapusnya atau melucuti / memberikan pesan kesalahan seperti "karakter tidak didukung" ..
sumber
Batasi karakter spesial saat tombol ditekan. Berikut adalah halaman uji untuk kode kunci: http://www.asquare.net/javascript/tests/KeyCode.html
Di Angular, saya membutuhkan format mata uang yang tepat di bidang teks saya. Solusi saya:
Di html tambahkan direktif
dan dalam pengontrol sudut yang sesuai, saya hanya mengizinkan hanya ada 1 periode, ubah teks menjadi angka dan tambahkan pembulatan angka pada 'blur'
sumber
Untuk mengganti karakter khusus, spasi dan ubah ke huruf kecil
sumber
sumber
Izinkan hanya angka di TextBox (Batasi Huruf dan Karakter Khusus)
sumber
sumber