2014-09-19 26 views
3

我遇到了IE問題。 我在JS中使用計算創建了表單,它使用輸入類型範圍。 這裏是一個的jsfiddle鏈接:http://jsfiddle.net/vu378xh9/8/ 和HTML代碼:Internet Explorer的輸入功能不起作用

<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

'oninput'只從IE9支持起。您可以在舊版瀏覽器上使用'onkeyup'。 – 2014-09-19 08:31:27

+0

有趣的事情 - 我試圖在IE 11上。同樣的。 MaxArt解決方案效果很好。 – gzres 2014-09-19 08:42:32

回答

3

oninput在較早的Internet Explorer版本中不受支持。由於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>

相關問題