0

我有一个计算函数和一个画布元素,我不知道为什么,但画布部分有效,而计算函数没有。如果我从我的文本编辑器启动它,则计算功能有效,而画布部分则无效。

它真的让我感到困惑,我认为这可能与订购有关,也许我真的不确定有人可以解释这些结果吗?

http://jsfiddle.net/IamSleepy32/tELZd/

这是计算功能

function calculate(){
var amount=document.getElementById("amount");
var apr=document.getElementById("apr");
var years=document.getElementById("years");
var payment=document.getElementById("payment");
var total=document.getElementById("total");
var totalintrest=document.getElementById("totalintrest");

var principal= parseFloat(amount.value);
var intrest= parseFloat(apr.value)/100/12;
var payments= parseFloat(years.value)*12;

var x= Math.pow(1+intrest,payments);
var monthly= (principal*x*intrest)/(x-1);

if(isFinite){
    payment.innerHTML=monthly.toFixed(2);
    total.innerHTML=(monthly*payments).toFixed(2);
    totalintrest.innerHTML=((monthly*payments)-principal).toFixed(2);

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

这是画布部分的开始,其余部分在小提琴中

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
4

2 回答 2

0

我在您的函数中看到的唯一问题是您使用的是未定义的变量isFinite。如果您指的是 JavaScript 函数isFinite,那么您忘记指定数字参数。

也许你的意思是,

if (isFinite(monthly)) { } else { }
于 2013-08-24T22:53:21.133 回答
0

问题是函数计算未定义。我稍微调整了您的jsfiddle,实际上将 js 代码分为两部分:

function calculate() {}

可以放在 html 的头部,画布的绘制可以在 onLoad 事件中发生。还要考虑@campari 关于 isFinite 的建议,因为这可能是未定义的。我已将其替换为

if(true)
于 2013-08-24T23:08:42.727 回答