【发布时间】:2015-09-22 10:17:14
【问题描述】:
当我更改输入 type="number" id="homevalue" 时,它不会触发更改,直到我更改另一个输入。所有其他输入都会立即触发更改,我看不出有任何差异可以解释这一点:
<body style="font-family: arial;">
<form name="repaymentcalc" action="">
<div align="center">
</br>
<p>
Home Value £
<input type="number" id="homevalue" value="250000" style="width: 75px">
</p>
<p>
Loan Amount £
<input type="number" id="loanamount" value="200000" style="width: 75px">
</p>
<p>
Interest Rate
<input type="number" id="interestrate" value="3.00" style="width: 50px">%
</p>
Term
<input type="range" id="numberpayments" value="25" min="1" max="40" style="width: 100px">
<div id="years" style="display:inline-block;">25 years
</div>
<div id="repayments">Monthly Repayment: £948.42</div>
<p>
<div id="ltv">Loan to Value: 80.0%</div>
</div>
</form>
<script>
window.onload = function() {
document.repaymentcalc.loanamount.onchange = repayment;
document.repaymentcalc.interestrate.onchange = repayment;
document.repaymentcalc.numberpayments.onchange = repayment;
}
function repayment() {
var x = parseInt(document.repaymentcalc.loanamount.value, 10);
var y = parseInt(document.repaymentcalc.interestrate.value * 100, 10) / 120000;
var z = parseInt(document.repaymentcalc.numberpayments.value, 10) * 12;
var h = parseInt(document.repaymentcalc.homevalue.value, 10);
var repayment = y * x * Math.pow((1 + y), z) / (Math.pow((1 + y), z) - 1);
var loantovalue = x / h * 100;
var year = z / 12;
document.getElementById("repayments").innerHTML = 'Monthly Repayment: £' + repayment.toFixed(2);
document.getElementById("ltv").innerHTML = 'Loan to Value: ' + loantovalue.toFixed(1) + '%';
document.getElementById("years").innerHTML = year + ' years';
}
</script>
任何帮助将不胜感激:)
谢谢。
【问题讨论】:
-
尝试使用
jQuery blur事件 -
你可以试试onkeyup。你也没有使用 jquery,所以不需要那个标签(除非你想使用它)
-
尝试在
onkeyup事件上为该元素设置事件处理程序。 -
您还没有为 homevalue 设置 onchange 事件。你可以看一个 wokring 演示 here
标签: javascript html input onchange