html范围滑块 - oninput在IE 11中不起作用

时间:2015-12-12 22:51:07

标签: javascript html internet-explorer slider rangeslider

我已经实现了一个范围滑块,它使用该值从数组中获取元素并显示该元素,而不是显示范围值。它适用于Chrome和Firefox但不适用于IE 11 - 当滑块移动时,该值不会获得更新的元素。

HTML:

<div id="yearSlider" style="z-index:2;">
  <form>
    <div align="center">
      <input 
        type="range" 
        min=1 
        max=10 
        value=0 
        id="fader" 
        step=1 
        oninput="outputUpdate(years[value])"
      >
      <output for=fader id=volume>1908</output>
    </div>
  </form>

使用Javascript:

var years = [0,1908, 1910, 1912, 1915, 1920, 1935, 1949, 1982, 2005, 2015];

function outputUpdate(vol) {
  document.querySelector('#volume').value = vol;
}

通过搜索,我发现这与如何&#34; oninput&#34;在IE中工作(或不工作)。

我尝试合并here

的解决方案
<input 
  type="range" 
  min="5" 
  max="10" 
  step="1" 
  oninput="showVal(this.value)" 
  onchange="showVal(this.value)"
>

但它仍然没有更新。

我的jsfiddle

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取滑块:

<body>
    <div id="yearSlider" style="z-index:2;">
            <form>
              <div align="center">
                <input 
                  type="range" 
                  min=1 
                  max=10 
                  value=0 
                  id="fader" 
                  step=1 
                  onchange="outputUpdate(value)"
                >
                <span for=fader id=volume>1908</span>
              </div>
            </form>
        </div>
        <script>
            var years = [0,1908, 1910, 1912, 1915, 1920, 1935, 1949, 1982, 2005, 2015];

            function outputUpdate(vol) {
            document.getElementById('volume').innerHTML=years[vol];
            }
        </script>