Bagaimana cara membatasi input ke kotak teks sehingga hanya menerima angka dan titik desimal?
javascript
html
TinTin
sumber
sumber
isNaN(this.textbox.value)
??Jawaban:
Ini benar-benar berhasil!
sumber
&& charCode != 190 && charCode != 110 && (charCode > 105 || charCode < 96)
Apakah ini yang kamu cari?
Saya harap ini membantu.
EDIT: Saya mengedit contoh saya di atas sehingga hanya boleh ada satu titik, diawali dengan setidaknya satu digit dan diikuti oleh setidaknya satu digit.
sumber
Solusi yang diterima tidak lengkap, karena Anda dapat memasukkan beberapa '.', Misalnya 24 .... 22..22. dengan beberapa modifikasi kecil, ini akan berfungsi sebagaimana mestinya:
sumber
ondrop="return false;" onpaste="return false;" oncontextmenu="return false;"
tampaknya cukupBerikut adalah satu solusi lagi yang memungkinkan untuk bilangan desimal dan juga membatasi angka setelah desimal menjadi 2 tempat desimal.
sumber
if
tidak memiliki huruf besar "C"..
), tanda hubung (-
) dan hurufe
saat teks ditempelkan atau dijatuhkan ke bidang. Elemen HTML juga akan menampilkan dua panah untuk menaikkan dan menurunkan angka secara default di Chrome. Tombol penurunan memungkinkan angka turun di bawah nol.Semua solusi yang disajikan di sini menggunakan peristiwa kunci tunggal. Ini sangat rawan kesalahan karena input juga dapat diberikan menggunakan copy'n'paste atau drag'n'drop. Juga beberapa solusi membatasi penggunaan kunci non-karakter seperti
ctrl+c
,Pos1
dll.Saya sarankan daripada memeriksa setiap penekanan tombol Anda memeriksa apakah hasilnya valid sesuai dengan harapan Anda.
The
oninput
event dipicu setelah sesuatu yang berubah dalam area teks dan sebelum diberikan.Anda dapat memperluas RegEx ke format angka apa pun yang ingin Anda terima. Ini jauh lebih mudah dirawat dan diperpanjang daripada memeriksa penekanan tombol tunggal.
sumber
Apakah Anda mencari sesuatu seperti ini?
sumber
Hanya perlu menerapkan metode ini di Jquery dan Anda dapat memvalidasi kotak teks Anda untuk hanya menerima angka dengan desimal saja.
Silakan lihat demo kerja di sini
sumber
Bagi siapa pun yang tersandung di sini seperti yang saya lakukan, berikut adalah versi jQuery 1.10.2 yang saya tulis yang berfungsi sangat baik untuk saya meskipun membutuhkan sumber daya yang intensif:
sumber
Koreksi kecil untuk jawaban brilian @Rebisco untuk memvalidasi desimal dengan sempurna.
sumber
Jika Anda menginginkannya untuk nilai float,
Inilah fungsi yang saya gunakan
sumber
sumber
sumber
berikut adalah skrip yang membantu Anda:
sumber
Misalkan nama bidang kotak teks Anda adalah
Income
Panggil metode validasi ini ketika Anda perlu memvalidasi bidang Anda:
sumber
Memperluas jawaban @ rebisco. kode di bawah ini hanya akan mengizinkan angka dan satu '.' (titik) di kotak teks.
sumber
Solusi yang lebih baik
sumber
Mulai dari jawaban @rebisco:
Hanya mengizinkan format ini: 123123123 [.121213]
Demo di sini demo
sumber
Semoga berhasil untuk Anda.
sumber
Kode berikut berhasil untuk saya
Kotak masukan dengan acara "onkeypress" sebagai berikut
Fungsi "isNumberKey" adalah sebagai berikut
sumber
Saya mengamati bahwa untuk semua jawaban yang diberikan di sini, semuanya tidak berfungsi jika kita memilih beberapa bagian teks di kotak teks dan mencoba menimpa bagian itu. Jadi saya memodifikasi fungsinya yaitu seperti di bawah ini:
sumber
Untuk angka Desimal dan juga memperbolehkan angka Negatif dengan 2 tempat untuk desimal setelah titik ... Saya memodifikasi fungsinya menjadi:
sumber
cara alternatif untuk membatasi input ke kotak teks sehingga hanya menerima angka dan titik desimal adalah dengan menggunakan javascript di dalam input html. Ini bekerja untuk saya:
--Menerima--
9
9,99
--Jangan terima--
9.99.99
ABC
sumber
Ini akan memungkinkan hanya numerik dan akan membiarkan Anda meletakkan "." untuk desimal.
sumber
Ini bekerja dengan baik.
sumber
Solusi terbaik dan berfungsi dengan demo Langsung sampel Pure-Javascript: https://jsfiddle.net/manoj2010/ygkpa89o/
sumber
Mengerjakan masalah sendiri, dan itulah yang saya dapatkan sejauh ini. Ini kurang lebih berfungsi, tetapi tidak mungkin menambahkan minus setelahnya karena pemeriksaan nilai baru. Juga tidak mengizinkan koma sebagai pemisah seribu, hanya desimal.
Itu tidak sempurna, tetapi mungkin memberi beberapa ide.
Memungkinkan:
11 11 .245 (dalam pengontrol diformat dengan blur ke 1111.245)
11,44
-123.123
-1 014
0123 (diformat pada blur ke 123)
tidak mengizinkan:
! @ # $ / *
abc
11.11.1
11,11.1
0,42
sumber
sumber
Saya tahu bahwa pertanyaan ini sudah sangat tua tetapi kami masih sering mendapatkan persyaratan seperti itu. Ada banyak contoh, namun banyak yang tampaknya terlalu bertele - tele atau rumit untuk sebuah implimentasi sederhana.
Lihat https://jsfiddle.net/vibs2006/rn0fvxuk/ dan perbaiki (jika Anda bisa). Ia bekerja di IE, Firefox, Chrome dan Edge Browser.
Ini kode yang berfungsi.
sumber
Saya memilih untuk menangani ini pada
oninput
acara tersebut untuk menangani masalah penempelan keyboard, penempelan mouse, dan penekanan tombol. Berikan true atau false untuk menunjukkan validasi desimal atau integer.Ini pada dasarnya tiga langkah dalam tiga satu liner. Jika Anda tidak ingin memotong desimal, beri komentar pada langkah ketiga. Penyesuaian untuk pembulatan juga dapat dilakukan pada langkah ketiga.
sumber
Anda dapat membatasi nilai yang akan dimasukkan oleh pengguna dengan menentukan rentang nilai ASCII.
Contoh : 48 hingga 57 untuk nilai numerik (0 hingga 9)
sumber