2013-02-13 55 views
25

html数値入力タグを使用してユーザーがドル金額を入力できるフォームを作成しています。入力ボックスに常に小数点以下2桁を表示させる方法はありますか?html数値の入力を常に小数点以下2桁にします。

+0

ありません。どのようなサーバーサイドの言語を使用していますか?あなたはjavascriptをknwoですか? –

答えて

32

ので、ここで、この時に他の誰かがつまずくが、この問題へのJavaScriptのソリューションである場合:

ステップ1:onchangeイベント

myHTMLNumberInput.onchange = setTwoNumberDecimal; 

またはHTML内にあなたのHTML番号入力ボックスをフック書き込み:あなたはとても

<input type="number" onchange="setTwoNumberDecimal" min="0" max="10" step="0.25" value="0.00" /> 

ステップ2を好む場合は、コードあなたがそう好む場合は、多かれ少なかれ、小数点以下の桁数を取得することができますtoFixedの「2」を変更することによりsetTwoDecimalPlace方法

function setTwoNumberDecimal(event) { 
    this.value = parseFloat(this.value).toFixed(2); 
} 

+2

残念ながらFirefox 50ではうまく機能していないようです。 – dangowans

1

JavaScriptの番号はtoFixedです。数字フィールドにonChange関数を書くと、入力にtoFixedを呼び出して新しい値を設定することができます。

+1

onChangeは本当に迷惑です。私はjQueryの.blur関数を使うのが好きです。 http://api.jquery.com/blur/ – RandomUs1r

+0

これは単なる最小限の解決策ですが、jQueryを使用するとOPの生活が楽になる可能性があります。 – spots

+0

@ RandomUs1rは本当に 'onBlur'にアクセスするためにjQueryを使う必要はありません – RozzA

2

純粋なhtmlはあなたが望むことはできません。私の提案は、あなたのためにroudningを行うためのシンプルなjavascript関数を書くことでしょう。

+0

私は、このデータのためにフロートを使用するバックボーンモデルで保存しています。私はちょうどテキストボックスに表示された番号を2桁の小数点を持っているしたいと思います。 – Cristiano

+0

あなたが言っていたことを誤解しています...それはこの重量になります – Cristiano

10

インラインソリューションは、以下の形式でグルートとIvaylo提案を兼ね備え:

onchange="(function(el){el.value=parseFloat(el.value).toFixed(2);})(this)" 
+1

プレースホルダを持っているとデフォルトでその値入力時に変更することはできません。 –

1

あなたは多くの機能のためにTelerikのnumerictextboxを使用することができます

<input id="account_rate" data-role="numerictextbox" data-format="#.000" data-min="0.001" data-max="100" data-decimals="3" data-spinners="false" data-bind="value: account_rate_value" onchange="APP.models.rates.buttons_state(true);" /> 

コアコードはfree to download

0

ですここで認められた解決策は間違っています。 HTMLでこれを試してみてください:

onchange="setTwoNumberDecimal(this)" 

と機能を見えるように:

function setTwoNumberDecimal(el) { 
     el.value = parseFloat(el.value).toFixed(2); 
    }; 
3

他の人々は、私は矢印を使用して番号を変更したときに主に働いたが、動作しませんonchangeを使用してここに掲載何同じ方向に複数回働いたのはoninputでした。私のコード(主にMC9000からの借入):純粋なHTMLと

HTML

<input class="form-control" oninput="setTwoNumberDecimal(this)" step="0.01" value="0.00" type="number" name="item[amount]" id="item_amount"> 

JS

function setTwoNumberDecimal(el) { 
     el.value = parseFloat(el.value).toFixed(2); 
    }; 
関連する問題