0

我正在编写一个在线贷款计算器进行练习。数据处理全部在客户端完成,但是 JSFiddle 希望我使用POST. 为什么是这样?这可能与在本地单击计算按钮时表单刚刚清除的事实有关吗?JSFiddle 中的代码:http: //jsfiddle.net/TJonS/CuzSM/

另外,为什么这不是在点击按钮时计算的?我已经尝试过多次调试,但 Chrome 没有显示任何错误。

Javascript:

          function calculate(){
        //get the elements
      var amount = document.getElementById("amount");
      var rate = document.getElementById("rate");
      var duration = document.getElementById("duration");
        //get the values of the elements
      var a = parseFloat(amount.value);
      var r = parseFloat(rate.value);
      var d = parseFloat(duration.value);
        //grab the outputable (readable(ha ha:))) variables
      var principal = a;
      var interest = r/100/12;
      var time = d *12;
        //now the calculation variables
      var x = Math.pow(1+interest, payments);
      var monthlypay = (principal*x*interest)/(x-1);
        //if the result is a finite number, then display it. Else we're messed up!
      if (isFinite(monthlypay)) {
        //fill in outputs
            payment.innerHTML = monthlypay.toFixed(2);
            total.innerHTML = (monthlypay * payments).toFixed(2);
            totalinterest.innerHTML = ((monthlypay*payments)-principal).toFixed(2);
        //save the variables

            save(amount.value, rate.value,duration.value, a.value, r.value, d.value, principal.value, total.value, totalinterest.value)
      }
      //else just make the outputs blank as can be.
      else {
        payment.innerHTML = "";
        total.innerHTML = "";
        totalinterest.innerHTML = "";
      }
}
4

2 回答 2

3

就放

return false;

在计算函数的底部,停止执行表单发布的默认 onClick 行为(按钮的)。

还...

您的 if 语句“if (isFinite(monthlypay)) {”是否真正得到关注?这似乎每次都在抹去价值。

else {
    payment.innerHTML = "";
    total.innerHTML = "";
    totalinterest.innerHTML = "";
  }

检查您的“isFinite(monthlypay)”函数是否返回 true。(很可能永远不会)

于 2013-09-16T14:59:34.047 回答
0

没有点击后发布的按钮:

<input type="button" onclick="dosomething();" value="my button text" />
于 2013-09-16T15:02:04.603 回答