32

書式設定された数値入力を使用して、ユーザーが大きな数値を入力したときに千区切りのドットを表示したいと考えています。私が使用したディレクティブ コードは次のとおりです: http://jsfiddle.net/LCZfd/3/

使用するinput type="text"と機能しますが、使用したい場合はinput type="number"、ユーザーが大きな数字を入力すると、何かが奇妙に掃除されます。

問題は何input[number]ですか?

4

5 に答える 5

42

コメントに書かれているように、input type="number"数字、小数点記号 (通常,または.ロケールによって異なります) および-or以外はサポートしていませんe好きなように入力することはできますが、ブラウザーは不明な文字や正しくない文字を破棄します。

これにより、次の 2 つのオプションが残ります。

  • exampleで行っているように、値を自動的にフォーマットしながら、ユーザーが入力できるものを制限するtype="text"などのパターン検証を使用しますpattern="[0-9]+([\.,][0-9]+)*"
  • 入力フィールドの上にオーバーレイを配置して、必要な方法で数値をレンダリングし、ユーザーがここに示すtype="number"ようにカスタム入力コントロールを使用できるようにします。

後者のソリューション<label>では、現在の値を含む追加のタグを使用し、入力フィールドにフォーカスすると CSS によって非表示になります。

于 2014-06-05T10:27:01.387 に答える
6

step入力に属性を追加する必要がありますnumber

<input type="number" step="0.01" />

これにより、浮動小数点が許可されます。

http://jsfiddle.net/LCZfd/1/

numberまた、 Firefox の入力に関するバグ スレッドを確認することをお勧めします。この入力タイプは、このリリースの FFでようやくサポートされたばかりなので、使用しないことを検討することをお勧めします。

于 2014-06-02T22:13:16.710 に答える