【发布时间】:2014-08-13 20:05:44
【问题描述】:
我正在学习 javascript,但我一直坚持这一点。似乎没有任何语法错误,并且表单在 html 中正确显示,我只是没有得到任何计算数据。我不确定我是否遗漏了一些您可能会注意到的小东西,或者我所写的内容是否完全错误。任何建议将不胜感激。
感谢您的帮助
HTML:
<form id="loanddata">
<table>
<tr><td><b>enter loan information</b></td></tr>
<tr><td>1) Amount of loan</td> <td><input type="text" name="principal" onchange="calculate();"></td></tr>
<tr><td>2) Annual Percent of increase</td> <td><input type="text" name="interest" onchange="calculate();"></td></tr>
<tr><td>3) Repayment period in years</td><td><input type="text" name="years" onchange="calculate();"></td></tr>
<tr><td></td>
<td><button name="compute" type="submit" onclick="calculate();"></td>
</tr>
<tr><td><b>Payment Information</b></td></tr>
<tr><td>4) Your Monthly Payment</td> <td>$<span class="result" id="payment"></span></td></tr>
<tr><td>5)Your Total Payment</td> <td>$<span class="result" id="total"></span></td></tr>
<tr><td>6) Your Total Interest Payment</td> <td><span class="result" id="totalinterest"></td> </tr>
</table>
</form>
JavaScript:
function calculate() {
var principal = document.loandata.principal.value;
var interest = document.loandata.interest.value;
var payments = document.loandata.years.value;
var x = Math.pow(1 + interest, payments);
var monthly = (principal*x*interest)/(x-1);
var payment = document.getElementById("payment");
var total = document.getElementById("total");
var totalinterest = document.getElementById("totalinterest");
if (isFinite(monthly)){
payment.innerHTML = monthly.toFixed(2);
total.innerHTML = (monthly * payments).toFixed(2);
totalinterest.innerHTML = ((monthly*payments)-principal).toFixed(2);
} else {
payment.innerHTML = "";
total.innerHTML = "";
totalinterest.innerHTML = "";
}
}
【问题讨论】:
-
错字,id 是
loanddata,但您使用document.loandata也必须使用name而不是id。 -
您检查控制台是否有任何错误?还是只看代码和检查?
-
我只是在dreamweaver 中查看它,它没有显示任何错误。感谢您指出错字,但我仍然遇到同样的问题.. woohoo :D 当我将 id 更改为 name 时它起作用了,非常感谢
-
在浏览器中打开页面,按 F12 并查看控制台;它会显示任何错误。 (要使 document.loandata 工作,name 属性必须是“loandata”,如果它的 id 则不会)
标签: javascript html