12

我有一个滑块(输入类型范围),它应该在更改值时运行一个函数。然后该函数应在单独的 div 容器中显示新值。在函数中放置警报后,我知道该函数没有被调用,但是在谷歌搜索一个小时并尝试了几种不同的方法后,我找不到错误。

这是 HTML 部分:

<input id="slide" type="range" min="1" max="100" step="1" value="10" onchange="updateSlider(this.value)">

<div id="sliderAmount"></div>

JavaScript:

// Slider
function updateSlider(slideAmount)
{
  alert("error");
  var sliderDiv = document.getElementById("sliderAmount");
  sliderDiv.innerHTML = slideAmount;
}
4

1 回答 1

24

它可以工作,您只需要确保在呈现元素时定义了 JavaScript 函数,例如:

<script>
    function updateSlider(slideAmount) {
        var sliderDiv = document.getElementById("sliderAmount");
        sliderDiv.innerHTML = slideAmount;
    }
</script>
<input id="slide" type="range" min="1" max="100" step="1" value="10" onchange="updateSlider(this.value)">
<div id="sliderAmount"></div>

看这个演示:https ://jsfiddle.net/Mmgxg/

更好的方法是删除 inlineonchange属性:

<input id="slide" type="range" min="1" max="100" step="1" value="10">
<div id="sliderAmount"></div>

然后在你的 JavaScript 代码中添加监听器:

var slide = document.getElementById('slide'),
    sliderDiv = document.getElementById("sliderAmount");

slide.onchange = function() {
    sliderDiv.innerHTML = this.value;
}

https://jsfiddle.net/PPBUJ/

于 2012-12-15T22:23:10.290 回答