我一直在研究这个问题,并且它没有采取任何能够获得信用卡债务余额的输入并继续给我一个错误。
它还没有执行while函数来给我显示结果。一双新鲜的眼睛有助于发现错误。
if (!isValid(currentBalance, 0, 10000)) {
return false
} else if (!isValid(interest, 0, 30)) {
return false
} else {
return true;
}
if (!isValid(mnth_pay, currentBalance*.02, currentBalance)) {
return false
} else {
var balance = $("#sliderOutput12").val(); // used in loop
var interest = $("#sliderOutput13").val() / 100;
var mnth_pay = $("#sliderOutput14").val();
var currentBalance = balance.val();
var financeCharge = 0; // finance charge
var numberMonths = 0;
var totalInterest = 0;
}
while (currentBalance > 0) {
financeCharge = currentBalance*interest/12;
currentBalance = currentBalance - mnth_pay + financeCharge;
numberMonths++;
if (numberMonths > 300) {
alert("We are interrupting this process to prevent a hang which may result with a very high balance, high interest rate and low monthly payment.\n\nTry entering a higher monthly payment amount." )
mnth_pay.focus()
mnth_pay.select()
return
}
totalInterest += financeCharge;
}
答案 0 :(得分:0)
在实际获取其值之前,您需要检查currentBalance
的值:
if (!isValid(currentBalance, 0, 10000)) {
此外,您在此处有错误:
var balance = $("#sliderOutput12").val(); // used in loop
var currentBalance = balance.val();
从技术上讲,您执行此操作:var currentBalance = $("#sliderOutput12").val().val();
我已经修复了代码中的内容(只需将变量定义移到计算功能的顶部),看看是否可以从这里开始工作:http://jsfiddle.net/QVCHT/10/
还有一件事。此部分下面的任何代码:
if (!isValid(currentBalance, 0, 10000)) {
return false
} else if (!isValid(interest, 0, 30)) {
return false
} else {
return true;
}
永远不会被执行,因为无论发生什么,该部分都会返回一些内容("结束"函数)。你可能想要摆脱最后的回归。
以下是最终版本:http://jsfiddle.net/ypt0c8ep/