2014-10-19 120 views
0

我一直在努力这一段时间,它没有考虑到信用卡债务余额的输入,并一直给我一个错误。jQuery没有计算和显示结果

此外,它不执行while函数来给我显示结果。一双新鲜的眼睛会有助于发现错误。

JSFiddle

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

你签为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/

+0

所以移动函数以外的变量? – 2014-10-19 02:08:56

+0

不需要,只需在使用它们之前定义它们即可。如果他们在外面,你仍然需要在函数内再次读取它们以获取当前值。在我的答案中查看最终版本。 – Shomz 2014-10-19 02:10:44

+0

如果(参考isValid(mnth_pay,currentBalance * 0.02,currentBalance)!){ \t \t回假 }其他{ \t \t VAR余额= $( “#sliderOutput12”)VAL()。 \t \t //用于循环 \t var interest = $(“#sliderOutput13”)。val()/ 100; //(form.interest.value/100); \t var mnth_pay = $(“#sliderOutput14”)。val(); \t var currentBalance = balance.val(); \t var financeCharge = 0; \t \t \t //财务费用 \t var numberMonths = 0; \t var totalInterest = 0; } – 2014-10-19 02:13:29