0

重複の可能性:
JavaScript:小数点以下2桁で数値をフォーマットする

数値の入力を小数点以下2桁に制限するのに役立つJS(jQuery)スクリプトが必要です。

私はこれを試しましたが、入力を浮動小数点数または整数のみに制限すると完全に機能します。しかし、小数点以下2桁に制限する方法がわかりません。

ここでは他にもたくさんの答えを見ましたが、ユーザーが入力中に2桁を超える数字を入力するのを妨げるものはないようです。

助言がありますか?ありがとう。

編集:それが役立つなら私のコード

フォーム:

<form method="post" id="split_form" 
    action="?name=ajax&case=split_action&sid=' . $id . '" 
    onSubmit="return checkform(this);" >

    <table class="default" cellpadding="0" cellspacing="0">
      <tr><td><input class="numeric1" type="text" name="summ_1" value="" />
      <tr><td><input class="numeric2" type="text" name="summ_2" value="" />
    </table>
    <input type="submit" class="submit" value="ok" />

</form>

JSスクリプト:

<script type="text/javascript" src="/js/jquery.numeric.js"></script>
<script language="JavaScript" type="text/javascript">
    $(".numeric1").numeric();
    $(".numeric2").numeric();

    function checkform ( form ) {
        var sum1 = form.summ_1.value;
        var sum2 = form.summ_2.value;
        var new_summ = parseFloat(sum1) + parseFloat(sum2);
        var summ = parseFloat(' . $row[1]['summ'] . ');

        if ( ( sum1 > 0 && sum2 > 0 ) && ( new_summ == summ ) ) {
            return true;
        } else {
            return false ;
        }   
    }
</script>
4

1 に答える 1

1

数値プラグインの135 行目では、数値エントリが処理されます。現在、それらは常に許可されています。このプラグインを変更して、小数点が存在しない場合、または 2 段階以内の場合にのみ数値を許可することができます。

var decimalIx = $(this).val().indexOf(decimal);
allow = decimalIx == -1 || decimalIx >= $(this).val().length - 2;

構成可能にするつもりでした-2が、Alex Ball がコメントで指摘したように、作業は既に完了しています

于 2012-07-31T07:33:59.163 に答える