0

我的计算器输出了一些奇怪的结果,我已将其添加到 jsfiddle 供大家快速查看。

如果我把 4000 作为我的本金和 1 年,我放 1% 的利息,它会重复相同的本金和利息值,它也会每隔一个月跳过一次,但如果我把利率设置为 20%,它会开始倒计时本金和利息的结果正确。它有点奇怪。

我认为问题出在 intr 变量上,但我不太确定如何解决它。

   function totalF(){
    var body = document.body;
    var tbl = document.createElement('table');
    tbl.setAttribute('id', 'results');
    var tblBody = document.createElement('tbody');
    var tndiv = document.getElementById('tdcontainer');

    for (var j = 1; j < payments; j++){
    var row = document.createElement('tr');

        temp = round(principal);
        intr = round((monthly * payments) - principal);
    while(temp>0 && intr>0){    
        if(tndiv != null){
               var cell = document.createElement('td');
               var cell2 = document.createElement('td');
               var cell3 = document.createElement('td');            

               var ndiv =  round(temp);
               var intr = round((monthly * payments) - principal);
               var monthlyn = j;

                cell.innerHTML = ndiv;
                cell2.innerHTML = monthlyn;
                cell3.innerHTML = intr;

                row.appendChild(cell);
                row.appendChild(cell2);
                row.appendChild(cell3);

                j++;
            }

            temp-=monthly;
            intr-=monthly;
            tblBody.appendChild(row);

            }
        tbl.appendChild(tblBody);
        body.appendChild(tbl);
        tbl.setAttribute("border", "1");
        }
    }
}
4

1 回答 1

1
Timestamp: 17.04.2012 23:13:22
Error: document.loandata.payment is undefined
Source File: http://fiddle.jshell.net/_display/
Line: 86

改为使用document.getElementById('loandata').payment。对其他表单元素执行相同操作,甚至更好地使用var form = document.getElementById('loandata');然后form.payment等。

您还尝试在其他地方以无效的方式访问元素。如果一个元素有一个 ID,使用document.getElementById('yourId')来访问它,而不是document.yourIdor document.someElement.yourId

除此之外,您需要在分号后添加缺少的引号:

<div id="visualization" style="width: 750px;></div>
于 2012-04-17T21:13:53.783 回答