-4

私のphpプロジェクトを完成させるために助けが必要です。テキストフィールド V1、V2、V3 および結果/出力に 10 進数 (小数点以下第 4 位、つまり 0.0000) のみを受け入れるようにするか、数値を自動的に小数点第 4 位に変換し、読み取り専用フィールドにフォームをリロードせずに 3 つのテキスト フィールド。

例えば text field v1+text field v2+text field v3=text field result

テキスト フィールドは、小数点以下 4 桁を受け入れるか、自動的に小数点以下 4 桁に変換する必要があります。

次の合計関数を使用しています。

function sum() 
{
    var TotalLBCReceipts = num("TotalLBCReceipts");
    var TotalKaaseReceipts = num("TotalKaaseReceipts");
    var TakoradiToFactory = num("TakoradiToFactory2");
    var KaaseToFactory = num("KaaseToFactory2");
    var SampleResidue = num("SampleResidue");
    var Sweepings  = num("Sweepings");
    var OrganicCocoa = num("OrganicCocoa2");
    var Confiscated = num("Confiscated");
    var Cuttings = num("Cuttings");
    var r = document.getElementById("GRANDTOTAL1");

    if (r != null) 
    {
         r.value = TotalLBCReceipts + 
                   TotalKaaseReceipts + 
                   TakoradiToFactory +
                   KaaseToFactory +
                   SampleResidue +
                   Sweepings +
                   OrganicCocoa +
                   Confiscated+Cuttings;
     }
}

を使用して値を取得します。

function num(id) 
{
    var e = document.getElementById(id);

    if (e != null) 
    {
        var v = e.value;
        if (/^\d+$/.test(v)) 
        {
            return parseInt(v, 10);
        }
    }

return 0;

}

ありがとう。

4

1 に答える 1

0

Google はあなたの友達です... StackOverflow もそうです!!

ここでは JavaScript を使用する必要があり、おそらく PHP と同様に...

小数点以下の数字に制限:

テキストボックスへの入力を制限する: 数字と小数点のみを許可する

<HTML>
  <HEAD>
    <SCRIPT language=Javascript>
       <!--
       function isNumberKey(evt)
       {
          var charCode = (evt.which) ? evt.which : event.keyCode;
          if (charCode != 46 && charCode > 31 
            && (charCode < 48 || charCode > 57))
             return false;

          return true;
       }
       //-->
    </SCRIPT>
  </HEAD>
  <BODY>
    <INPUT id="txtChar" onkeypress="return isNumberKey(event)" 
           type="text" name="txtChar">
  </BODY>
</HTML>

読み取り専用フィールドを含む数値の合計:

テキスト ボックスの値を追加し、javascript を使用して表示する

<form name="myFormName">
    <p><input type="text" name="myInputName1" value="25.3"></p>
    <p><input type="text" name="myInputName2" value="14.2"></p>
</form>
<div id="total"></div>

<script type="text/javascript>

    var total = parseFloat(0, 10);

    total += parseFloat(document.myFormName.myInputName1.value, 10);
    total += parseFloat(document.myFormName.myInputName2.value, 10);

    document.getElementById("total").innerHTML = "Total is " + total;

</script>

小数点以下 4 桁に丸める;:

https://stackoverflow.com/a/7269919/1305169

Math.round(val*10000)/10000

お役に立てれば!

編集:

コードを次のように変更する必要があります。

あなたの sum 機能:

function sum() 
{
    var TotalLBCReceipts = num("TotalLBCReceipts");
    var TotalKaaseReceipts = num("TotalKaaseReceipts");
    var TakoradiToFactory = num("TakoradiToFactory2");
    var KaaseToFactory = num("KaaseToFactory2");
    var SampleResidue = num("SampleResidue");
    var Sweepings  = num("Sweepings");
    var OrganicCocoa = num("OrganicCocoa2");
    var Confiscated = num("Confiscated");
    var Cuttings = num("Cuttings");
    var r = document.getElementById("GRANDTOTAL1");

    if (r != null) 
    {
         r.value = Math.round((
                       TotalLBCReceipts + 
                       TotalKaaseReceipts + 
                       TakoradiToFactory +
                       KaaseToFactory +
                       SampleResidue +
                       Sweepings +
                       OrganicCocoa +
                       Confiscated +
                       Cuttings) * 10000) / 10000;
     }
}

そしてあなたの num 機能:

function num(id) 
{
    var e = document.getElementById(id);

    if (e != null) 
    {
        return Math.round(e.value*10000)/10000;
    }

    return 0;
}

num関数から単純な数値を返すだけでよいかもしれませんが、完全を期すためにここに示します。

于 2013-02-08T14:25:29.663 に答える