によるとhtml5.org「数値」入力タイプの「値属性が指定されていて空でない場合、その値は有効な浮動小数点数である必要があります。」
しかし、これは単純に (少なくとも Chrome の最新バージョンでは)、浮動小数点数ではなく整数値を持つ「アップダウン」コントロールです。
<input type="number" id="totalAmt"></input>
HTML5 にネイティブな浮動小数点入力要素はありますか? または、数値入力タイプを int ではなく float で動作させる方法はありますか? それとも、jQuery UI プラグインに頼る必要がありますか?
ベストアンサー1
型number
には、step
有効な数値を制御する値(および )がありmax
、min
デフォルトは です1
。この値は、ステッパー ボタンの実装でも使用されます(つまり、上を押すと ずつ増加しますstep
)。
この値を適切な値に変更するだけです。金額の場合、おそらく小数点以下 2 桁が想定されます。
<label for="totalAmt">Total Amount</label>
<input type="number" step="0.01" id="totalAmt">
min=0
(プラスのみにできるかどうかも設定します)
小数点以下の桁数を任意にしたい場合は、 を使用できますstep="any"
(ただし、通貨の場合は を使用することをお勧めします0.01
)。ChromeとFirefoxでは、 を使用するとステッパーボタンは1ずつ増減しますany
。( を指摘してくれたMichal Stefanowの回答に感謝しますany
、そして関連する仕様はこちらをご覧ください)
さまざまなステップがさまざまな入力タイプにどのように影響するかを示すプレイグラウンドを次に示します。
<form>
<input type=number step=1 /> Step 1 (default)<br />
<input type=number step=0.01 /> Step 0.01<br />
<input type=number step=any /> Step any<br />
<input type=range step=20 /> Step 20<br />
<input type=datetime-local step=60 /> Step 60 (default)<br />
<input type=datetime-local step=1 /> Step 1<br />
<input type=datetime-local step=any /> Step any<br />
<input type=datetime-local step=0.001 /> Step 0.001<br />
<input type=datetime-local step=3600 /> Step 3600 (1 hour)<br />
<input type=datetime-local step=86400 /> Step 86400 (1 day)<br />
<input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br />
</form>
いつものように、簡単なメモを追加します。クライアント側の検証は、ユーザーの利便性のためだけのものであることを忘れないでください。サーバー側でも検証する必要があります。