【发布时间】:2016-05-20 01:21:41
【问题描述】:
我有一个 javascript 计算器,它可以在除 Internet Explorer 之外的所有浏览器中正常工作。我需要知道为什么 Internet Explorer 在第 14 行给我这个错误:“无法设置未定义或空引用的属性'值'。”
这是计算器代码:
<meta http-equiv="x-ua-compatible" content="IE=10">
<script>
function showpay() {
"use strict";
if ((document.loanCalc.loan.value === null || document.loanCalc.loan.value.length === 0) ||
(document.loanCalc.months.value === null || document.loanCalc.months.value.length === 0)
||
(document.loanCalc.rate.value === null || document.loanCalc.rate.value.length === 0)) { document.loanCalc.pay.value = " ";
} else {
var princ = document.loanCalc.loan.value;
var term = document.loanCalc.months.value;
var intr = document.loanCalc.rate.value / 1200;
document.loanCalc.pay.value = Math.round(princ * intr / (1 - (Math.pow(1 / (1 + intr), term))));
}
// payment = principle * monthly interest/(1 - (1/(1+MonthlyInterest)*Months))
}
</script>
<form name=loanCalc method=POST>
<table class="calculator">
<tr><td>Loan Amount</td><td align=right><input type=number onInput='showpay()' name=loan size=10 value="15000"></td></tr>
<tr><td>Term in Months</td><td align=right><input type=number onInput='showpay()' name=months size=10 value="60"></td></tr>
<tr><td>Interest Rate</td><td align=right><input type=number onInput='showpay()' name=rate size=10 value="1.99"></td></tr>
<tr><td>Monthly Payment</td></tr>
<tr><td align=left class=result><span>$</span><output name=pay>263</output></td></tr>
</table>
</form>
Internet Explorer 的调试器在第 14 行显示“无法设置未定义或空引用的属性‘值’”:document.loanCalc.pay.value = Math.round(princ * intr / (1 - (Math.pow(1 / (1 + intr), term))));
该代码可在 Chrome、Safari 和 Firefox 中正常工作。您可以在此页面上查看正在运行的计算器:http://bloomcu.com/test-page/
为什么我在 Internet Explorer 中收到此错误?
【问题讨论】:
-
您可以在此页面上看到正在运行的计算器:bloomcu.com/test-page
-
这是因为您的 HTML 无处不在。缺少或不一致的报价。您的字段项没有 ID。 td align=right 无论如何都已弃用且无法使用...
-
尖刻的回答:“Internet Explorer”——你回答了你自己的问题。
-
IE 不支持 html5
-
@Z.Z.有趣的。我可以用什么来代替
标签: javascript internet-explorer undefined undefined-reference