HTML で input
要素の type
属性に number
を指定したとき、数値以外で入力できる値として
-
+
.
以外に、実は e
も入力できます。
これは(おそらく)べき乗の表現にも対応しようとした処置です(例:1e+2
は100
を表す)。
JavaScript でも 1000000000000000000000
以降は 1e+21
といった形で表現されたりしますしね。
ただ、困ったことにこれだと場合によってはサーバーサイドでの値のバリデーション等でコケる可能性があるので、フロントエンドで e
を入力できないようにしたほうが親切かもしれません。
[html5 - Why does the html input with type "number" allow the letter 'e' to be entered in the field? - Stack Overflow]
(https://stackoverflow.com/questions/31706611/why-does-the-html-input-with-type-number-allow-the-letter-e-to-be-entered-in)
自分は普段 Vue を使っているので、以下のように書くことで e
を入力できないようにできたので便利だな〜と思ったりました。
<input type="number" @keydown.69.prevent>
以上です。