使用Javascript计算表单字段——结果为NaN
我创建了一个简短的表单,它应该根据用户输入计算值。我已经算出了大部分,但似乎无法在总计字段中显示结果。相反,我得到了NaN 我正在尝试使用parseInt,但还没有任何运气 以下是我到目前为止的情况: Javascript:使用Javascript计算表单字段——结果为NaN,javascript,forms,calculator,nan,Javascript,Forms,Calculator,Nan,我创建了一个简短的表单,它应该根据用户输入计算值。我已经算出了大部分,但似乎无法在总计字段中显示结果。相反,我得到了NaN 我正在尝试使用parseInt,但还没有任何运气 以下是我到目前为止的情况: Javascript: var AdPrice = document.getElementsByTagName('input') = 0; var ColorCharge = document.getElementsByTagName('input') = 0; var WebAd =
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>
付款详情
广告费$
彩色电荷+
网络广告+
小计=
首期付款-
总计=
#奉献。付款\
每次付款金额$
按比例/长度
我还有一把小提琴:
开始时除以零(小计)
以及:
这种装订行吗?我想不是。对我来说很陌生
将“getElements”行放在方法中如何?javascript上有几个错误需要处理,如问题注释中所述,您应该使用
getElementById
检索DOM元素,您遇到的另一个问题是,当浏览器收到响应时,您的代码正在运行,而此时可能还没有为DOM做好工作准备,因此您的所有引用都返回为NULL。这是工作版本,当初始值为零时,您仍然需要添加一些验证,这样您就不会得到NaN作为操作的结果
不是针对个人的,但您需要阅读有关如何创建表单的指南,因为这一切都不是它应该做的。您不应该使用getElementsByTagName获取单个输入,因为它获取所有输入标记,而不仅仅是您想要的标记。读一点jQuery会很有用,可以帮助您获得想要计算的表单元素。您需要学习基本的Javascript。什么样的语句是
var AdPrice=document.getElementsByTagName('input')=0代码>应该怎么做?您认为您正在将0分配给什么?您没有注意到Javascript控制台“ReferenceError:分配的左侧不是引用”中的错误吗?谢谢!这就是我要找的。起初,我在寻找不同的方法来做这件事,并试图运用我认为合乎逻辑的方法。正如你从我的代码中可以看出的那样,我对这个相当陌生。我很感谢你抽出时间来看它!!:)我让它工作了!我决定用jQuery重新编写它。你帮我解决了主要问题,那就是如何使用parseFloat。这是小提琴: