2

ユーザーにパーセンテージ値 (例: 10.75%、23%) を入力するように求めている webapp にいくつかの入力があります。現在、これらの値は 10 進数で入力する必要があります (例: 0.1075 、 0.23)。

これは一部のユーザーに混乱を引き起こしているため、値をこれらの形式に変換したり、これらの形式から変換したりできる方法があることを望んでいました (バックエンドには 10 進値があり、HTML 入力にはパーセント値が表示されます)。JavaScriptなどを使用して自分でロールバックする必要なしに、これに対する解決策はありますか?

これを行う HTML5 入力には何も表示されず、簡単に実行できる JavaScript ライブラリを見つけることができませんでした。

他の人は HTML でパーセンテージ入力をどのように行っていますか?


追加情報

webapp は Java/Spring を使用しているため、HTML ページに送られる値は問題の Java オブジェクトからの文字列であるため、理想的にはバックエンド コーディングを必要としないものを探しています。


答え

Spring 3.0 ではこれが自動的に行われることがわかりました。問題のフィールドに次の注釈を付けます。

@NumberFormat(style = NumberFormat.Style.PERCENT)
private BigDecimal rate;

入力フィールドとの間のすべての変換を行います。

4

2 に答える 2

2

必要なJavaScriptは非常に単純です。たとえば、ユーザーが送信するときに、ユーザーの入力の小数値を非表示フィールドに保存できます。

​<form id="myForm">
    <input type="text" id="myPercent" name="myPercent" />%
    <input type="hidden" id="myFraction" name="myFraction" />
    <input type="submit" />
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
<script type="text/javascript">
    document.getElementById('myForm').onsubmit = function() {
        document.getElementById('myFraction').value = 
            document.getElementById('myPercent').value / 100;
    }
</script>
于 2012-12-08T14:55:10.387 に答える
1

簡単な計算です... 75 から .75 は 75/100 です。送信後に数値を変換する行を含めます。

于 2012-12-08T13:58:44.860 に答える