我有一個JavaScript計算器,在除Internet Explorer之外的每個瀏覽器中都可以正常工作。我需要知道爲什麼Internet Explorer在第14行給我這個錯誤:「無法設置未定義或空引用的屬性值」。Internet Explorer:無法設置未定義或空引用的屬性「值」
這裏是計算器代碼:
<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中出現此錯誤?
您可以在此頁面看到計算器正在運行:http://bloomcu.com/test-page/ – Derik
這是因爲您的HTML遍佈全球。缺少或不一致的引號。沒有ID爲您的野外物品。 td align = right這是已被棄用,無法使用...... – durbnpoisn
snarky回答:「Internet Explorer」 - 你回答了你自己的問題。 –