Internet Explorer oninput功能无法正常工作

时间:2014-09-19 08:25:56

标签: javascript internet-explorer

我的IE有问题。 我在JS中使用计算创建了表单,它使用输入类型范围。 这是jsfiddle的链接:http://jsfiddle.net/vu378xh9/8/ 和HTML代码:

<form action="" method="post" name="checkincome">
<label>Persons</label>
<input id="persons" name="persons" type="range" min="1" max="41" value="10" oninput="chckIncome();" />
<p id="personsvalue">10</p>
<br />
<label title="">Sale per person</label>
<input id="starters" name="starters" type="range" value="21.2" min="0.0" max="100.0" step="5" oninput="chckIncome();" />
<p id="startersvalue">21</p>
<br />
<p id="resultsvalue"></p>
<p style="text-align:center; padding-top:10px;">
    <input name="Reset" class="btn btn-large" type="reset" value="Reset" />
</p>

使用Javascript:

function chckIncome() {
var price = 49.9;
var regular = 199.9;
var form = document.forms.checkincome;
var x = parseFloat(form.persons.value);
var y = parseFloat(form.starters.value);
var z = 2.5;
var sum1 = (x * y) * price;
var sum2 = ((x * y) * z) * regular;
var sum3 = ((sum1 + sum2) * 0.25).toFixed(0);
sum3 = sum3.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
document.getElementById('personsvalue').innerHTML = form.persons.value;
document.getElementById('startersvalue').innerHTML = form.starters.value;
document.getElementById('resultsvalue').innerHTML = sum3 + " kr";
}

它适用于IE以外的所有浏览器。 有人可以知道如何解决它吗?

1 个答案:

答案 0 :(得分:5)

较旧的Internet Explorer版本不支持

oninput。由于oninput在您输入时触发,您可以使用其他事件来执行相同的操作。

由于您使用的是range,我建议您使用onmousemove

<input type="range" id="testInput" onmousemove="test()">

<p id="demo"></p>

<script>
   function test() {
      var x = document.getElementById("testInput").value;
      document.getElementById("demo").innerHTML =  x;
   }
</script>