html5 number inputで数字以外が入力できてしまう

HTML5になって、input要素にtype="number"というのが指定できるようになる事になっていて。現行でも対応済みっぽい挙動を示すブラウザがいくつかあるんだけど、なんだか納得のいかない挙動。
↑100の後ろで、「a」とか押してみて?

opera.png←Opera9.8で試した結果

number inputというからには、数字以外を押しても無視される事を期待していたのだけれど、現に「a」って押したら「100a」になってしまう。
実験用HTMLファイル
test.html
上記で試した挙動は以下の通り。
  • Opera9.80:数字以外も入力できる。ただし、submitした時、数字以外が含まれていると、valueが空文字に置き換えられる。
  • Chrome4.1.249.1045:数字以外も入力できる。POSTもできてしまう。
  • FireFox3.6.2:数字以外も入力できる。POSTもできてしまう。
  • Safari4.0.5:数字以外も入力できる。POSTもできてしまう。
自分がなんか勘違いしてたりするかなぁ?
仕様見ると、「User agents must not allow the user to set the value to a string that is not a valid floating point number. (ユーザーエージェントは、ユーザーが妥当な浮動小数点数でない文字列をその値にセットできるようにしてはいけません。)」って書いてあるんだけど・・・

トラックバック(0)

このブログ記事を参照しているブログ一覧: html5 number inputで数字以外が入力できてしまう

このブログ記事に対するトラックバックURL: http://mogya.com/mt/mt-tb.cgi/981

コメント(7)

そのtest.htmlで、例えば「12e1」という数字を入力すると、結果URLは「edit_price=120」になりました。(Opera10.60beta)

Firefox3.5.10だと、結果URLは「edit_price=12e1」。

あとはテストしていません。


もぎゃ :

ごめんなさいコメント見落としていました。

「12e1」が120になるということは、そういう入力も想定しているということですね。
まさかと思って全角数字を試したら空文字に置き換えられてしまいました。んー(><)

HTML5がもっと普及したら問題になって改善されることを期待しておこう。

_ :

type="numer"になってます

もぎゃ :

げげっ!「a」とか押してみて?のフォームですね。直しておきました。

これで直ったら大恥だなぁ、と思ったのだけどやっぱり「100a」とか入力できちゃいますね。

a :

Chrome 14.0ですが、直ってます。

mogya :

おお本当だ。フォーカスが外れた時点で数字だけになりますね。

safari5.1も同様に動きました。ということは、Webkitの方でがんばってくれたのかな。

mogya :

FireFoxは7.01になっても「100a」をPOSTできてしまう。惜しいなぁ。

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2010年4月12日 06:01に書いたブログ記事です。

ひとつ前のブログ記事は「 メイドさんのお引っ越しとそれに伴うおねぼうのおわび 」です。

次のブログ記事は「 位置情報サイトのAndoroid対応まとめ 」です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

Powered by
Movable Type