【发布时间】:2013-03-16 16:07:12
【问题描述】:
我创建了一个简短的表单,它应该根据用户输入来计算值。我已经弄清楚了大部分,但似乎无法让结果显示在总计字段中。相反,我得到的是 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>
我还有一把小提琴:
【问题讨论】:
-
没什么私人的,但您需要阅读有关如何创建表单的指南,因为这些都不能按应有的方式工作。
-
您不应该使用 getElementsByTagName 来获取单个输入,因为这会获取所有输入标签,而不仅仅是您想要的标签。阅读一些关于 jQuery 的知识会很有用,可以帮助您获得要计算的表单元素。
-
您需要学习基本的 Javascript。像
var AdPrice = document.getElementsByTagName('input') = 0;这样的语句应该做什么?您认为您将 0 分配给什么? -
您没有注意到 Javascript 控制台中的错误“ReferenceError: Left side of assignment is not a reference.”吗?
标签: javascript forms calculator nan