Saya memiliki elemen input html5 berikut:
<input type="number">
Mengapa input ini memungkinkan karakter 'e' dimasukkan di bidang input? Tidak ada karakter alfabet lain yang bisa dimasukkan (seperti yang diharapkan)
Menggunakan chrome v. 44.0.2403.107
Untuk melihat apa yang saya maksud: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number
.
beberapa kali di beberapa browser.Jawaban:
Karena persis seperti itulah spec mengatakan itu harus bekerja. Input angka dapat menerima angka titik-mengambang , termasuk simbol negatif dan
e
atauE
karakter (di mana eksponen adalah angka setelahe
atauE
):sumber
e
ini berguna untuk kondensasi angka besar yang akan membosankan untuk mengetik. Sebagai contoh sepele,2e2 = 2*10^2 = 200
e
kependekan dari Exponent.Kita bisa membuatnya sangat sederhana seperti di bawah ini
Jawaban yang Diperbarui
kita dapat membuatnya lebih sederhana seperti yang disarankan @ 88 MPG
sumber
return event.keyCode !== 69
karena menghindari operator ternary yang tidak perlu. Juga tidak akan merekomendasikan inlining.e
atauE
di lapangan sekalipunJenis nomor input HTML memungkinkan "e / E" karena "e" adalah singkatan dari eksponensial yang merupakan simbol numerik.
Contoh 200000 juga dapat ditulis sebagai 2e5. Saya harap ini membantu terima kasih atas pertanyaannya.
sumber
Cara terbaik untuk memaksa penggunaan nomor yang hanya terdiri dari angka:
ini menghindari 'e', '-', '+', '.' ... semua karakter yang bukan angka!
Untuk mengizinkan hanya tombol angka:
tapi terima "Backspace" (keyCode: 8) dan "Delete" (keyCode: 46) ...
sumber
sumber
Untuk menyembunyikan
e
tanda huruf dan minus,-
buka saja:sumber
Menggunakan angular, Anda dapat melakukan ini untuk membatasi untuk memasukkan e, +, -, E
sumber
Sudut; dengan IDE keyCode peringatan usang
Secara fungsional sama dengan jawaban rinku tetapi dengan pencegahan peringatan IDE
sumber