0

ユーザー入力に基づいて値を計算することになっている短いフォームを作成しました。私はそれのほとんどを理解しましたが、合計フィールドに表示される結果を得ることができないようです。代わりに、NaNを取得します。

parseIntを使おうとしていますが、まだ運がありません。

これが私がこれまでに持っているものです:

Javascript:

 var AdPrice = document.getElementsByTagName('input') = 0;
  var ColorCharge = document.getElementsByTagName('input') = 0;
  var WebAd = document.getElementsByTagName('input') = 0;
  var AdSubtotal = 0;
  var DownPayment = document.getElementsByTagName('input') = 0;
  var TotalPrice = 0;
  var Payments = document.getElementsByTagName('input') = 0;
  var TotalPayment = 0; 

function updateTotal()
{
  var subtotal = AdPrice + ColorCharge + WebAd;
  var total = subtotal - DownPayment;
  var totalmonthlypayment = total / Payments;

 parseFloat(document.getElementById('AdSubtotal').value = subtotal);
 parseFloat(document.getElementById('TotalPrice').value = total);
 parseFloat(document.getElementById('Payment').value = totalmonthlypayment);


}

HTML:

<fieldset>
              <legend>Payment Details</legend>

             Ad Charge $

              <input type="text" name="AdPrice" id="AdPrice" class="medium" onChange="updateTotal()" /><br />

              Color Charge +

              <input type="text" name="ColorCharge" id="ColorCharge" class="medium" onChange="updateTotal()" /><br />

              Web Ad +
              <input type="text" name="WebAd" id="WebAd" class="medium" onChange="updateTotal()" /><br />

              Subtotal =

              <input type="text" name="AdSubtotal" id="AdSubtotal" readonly class="medium"  /><br />

           Down Payment -

           <input type="text" name="DownPayment" id="DownPayment" class="medium" onChange="updateTotal()" /><br />

           Total = 
           <input type="text" name="TotalPrice" id="TotalPrice" readonly class="medium"  /><br /><br />



           # Consec. Payments \

             <input type="text" name="Payments" id="Payments" class="medium" onChange="updateTotal" /><br />

            Amt Each Payment $ 

            <input type="text" name="Payment" id="Payment" class="medium" readonly  /><br /><br />

            <input type="checkbox" name="ProratedCheck" id="ProratedCheck" /> <span style="margin-right:10px;">Prorated/Length</span><input type="text" name="ProratedLength" id="ProratedLength" />
</fieldset>           

私もフィドルを持っています:

http://jsfiddle.net/kjetterman/eHQV4/10/

4

2 に答える 2

1

最初のゼロ除算(小計)。

そして:この種のバインディングは機能しますか?私はそうは思わない。私にとって非常に新しい......。

メソッド内に「getElements」行を配置するのはどうですか?

于 2013-03-26T18:13:47.473 に答える
1

DOM要素を取得するために使用する必要がある質問のコメントで述べたように、JavaScriptにいくつかのエラーがありましたgetElementById。他の問題は、ブラウザーが応答を受け取るとすぐにコードが実行されていたことです。その瞬間、DOMが機能する準備ができていない可能性があるため、すべての参照がNULLとして返されていました。これが作業バージョンです。操作の結果としてNaNを取得しないように、初期値がゼロの場合の検証を追加する必要があります。

http://jsfiddle.net/Wy7kE/2/

于 2013-03-26T18:40:12.087 に答える