数値計算を行う小さな JavaScript ユーティリティを作成しています。ほとんどすべての入力は真の数値です (つまり、私はそれらを使って計算を行っています。郵便番号などではありません)。これらの数値の一部は、計算前に他の数値に追加される修飾子を表します。これらの数値を符号付きで表示し、値がゼロより大きい場合は先頭にプラス記号を付けたいと思います。これは Firefox と IE で問題なく動作します。これらは数値入力に対して特別なことを行いません。number
ただし、Chrome では入力の値にプラス文字を使用することはできませんが、問題なくparseFloat
処理できます。現在、私のコードは+
フィールドの値に手動で a を追加しているため、Chrome で壊れます。
これをChromeで機能させる方法はありますか? どうやら ( 'input' 要素の前後の CSS コンテンツ生成):before
は、ここでは役立たないでしょう。number
理想的には、型を維持したいと思います。他のすべてが失敗した場合は、 を使用できますが、 、、および属性text
に依存しています。min
max
step
更新:novalidate
フィールドに追加するとプラス記号が許可されますが、Chrome はvalue
空の文字列の a を要求します。要素を調べると、無効な場合に表示された値を取得する方法がわかりませんnovalidate
。
更新: 無効なフィールドから値を取得する良い方法がないようです ( <input type="number"> フィールドの生の値を取得する方法は? )。また、検証により、、、および属性が に対して許可されていないことが確認min
さmax
れstep
ますinput[type=text]
。他に何か思いつかない限り、おそらくプラス記号を放棄するでしょう。