Javascript中的汽车贷款计算器不显示任何内容
我希望有人能帮上忙: 我目前正在一家汽车经销商网站上工作。这个网站上有一个汽车贷款计算器,可以计算你每月的还款额。我已经成功地创建了一个计算正确金额的基本计算器 客户对此不满意。他们需要一个更先进的计算器来计算每月的还款额,包括大额的对价、存款、入会费和管理费 我修改了代码以反映这一点,但现在这个东西不再工作了。我在代码中找不到任何错误 下面是进行计算的Javascript:Javascript中的汽车贷款计算器不显示任何内容,javascript,calculator,Javascript,Calculator,我希望有人能帮上忙: 我目前正在一家汽车经销商网站上工作。这个网站上有一个汽车贷款计算器,可以计算你每月的还款额。我已经成功地创建了一个计算正确金额的基本计算器 客户对此不满意。他们需要一个更先进的计算器来计算每月的还款额,包括大额的对价、存款、入会费和管理费 我修改了代码以反映这一点,但现在这个东西不再工作了。我在代码中找不到任何错误 下面是进行计算的Javascript: function calculate() { // Get the user's input from
function calculate() {
// Get the user's input from the form. Assume it is all valid.
// Convert interest from a percentage to a decimal, and convert from
// an annual rate to a monthly rate. Convert payment period in years
// to the number of monthly payments.
var principal = document.loandata.principal.value;
var lessDeposit = document.loandata.deposit.value;
var adminFee = document.loandata.admin.value;
var initiationFee = document.loandata.initiation.value;
var interest = document.loandata.interest.value / 100 / 12;
var payments = document.loandata.years.value * 12;
var balloonPercent = document.loandata.balloon.value / 100;
// Now compute the monthly payment figure, using esoteric math.
var balloonFinal = (principal * balloonPercent);
var totalPrincipal = (principal + initiationFee + balloonfinal - lessDeposit);
var x = Math.pow(1 + interest, payments);
var monthly = (totalPrincipal*x*interest)/(x-1);
// Check that the result is a finite number. If so, display the results
if (!isNaN(monthly) &&
(monthly != Number.POSITIVE_INFINITY) &&
(monthly != Number.NEGATIVE_INFINITY)) {
document.loandata.payment.value = round(monthly + adminFee);
document.loandata.total.value = round(monthly * payments);
document.loandata.totalinterest.value =
round((monthly * payments) - principal);
}
// Otherwise, the user's input was probably invalid, so don't
// display anything.
else {
document.loandata.payment.value = "";
document.loandata.total.value = "";
document.loandata.totalinterest.value = "";
}
}
// This simple method rounds a number to two decimal places.
function round(x) {
return Math.round(x*100)/100;
}
此外,如果可能,还需要进行一些验证。与购买价格一样,利率和付款期限也是必填字段。但其余的都不是。因此,如果有人填写了必填字段,但没有填写其余字段,计算器仍然需要工作,但如果有人没有填写其中一个必填字段,则需要提示他们这样做
对于那些不知道什么是气球式付款的人,这里有一个例子;
购买价格为R117000
你决定以30%的比例支付。在初始购买价格上,30%相当于R35 100。然后从您的初始购买价格中减去该金额,这意味着您现在购买的是81 900兰特。之后是押金,减去押金,还有额外费用、管理费和入会费。因此,每月还款使用新购买价格81 900兰特+额外存款(如有)计算。为了利息,在合同结束后,您必须全额支付大额金额或为车辆重新融资
PS:说到JavaScript,我完全是个新手。因此,任何帮助都将不胜感激。如果结果为空,则以下三个条件之一可能触发else语句:
if (!isNaN(monthly) &&
(monthly != Number.POSITIVE_INFINITY) &&
(monthly != Number.NEGATIVE_INFINITY)) {
如果JS中有输入错误,您需要将
ballodefinal
更改为ballodefinal
,在var totalPrincipal=
代码行中使用大写字母F
principal
、lessDeposit
、adminFee
、initiationFee
可能还需要将其类型转换为整数/浮点。检查开发人员控制台,是否有任何错误?按F12在Chrome中查看它。嗨,我看不到任何错误。也许这个问题是陈旧的,但是你可以考虑分离DOM中的值的检索,计算,并用计算的结果更新DOM。你有没有想过?