HTML范围滑块和jQuery?

时间:2013-07-05 06:41:57

标签: jquery html5 slider

我的网站上有以下代码,并使用HTML5集成了一个范围滑块。我希望滑块用值更新文本输入,反之亦然。我会用jQuery做到这一点吗?如果是这样,你可以给我示例代码吗?

感谢。

<input type="text" name="chance" id="chance" class="text" value="50">

<input type="range" id="chance" class="vHorizon" min="0.01" max="98" style="background-color: #00aec8; width: 50%;">

8 个答案:

答案 0 :(得分:12)

您可以在滑块上使用change事件,在文本框上使用keyup事件来更新值。

HTML

<input type="text" name="chance" id="chance" class="text" value="50">

<input type="range" id="chanceSlider" class="vHorizon" min="0.01" max="98" step="0.01" style="background-color: #00aec8; width: 50%;">

的jQuery

$('#chanceSlider').on('change', function(){
    $('#chance').val($('#chanceSlider').val());
});

$('#chance').on('keyup', function(){
    $('#chanceSlider').val($('#chance').val());
});

和jsfiddle一起玩

http://jsfiddle.net/tDkEW/1/

答案 1 :(得分:3)

如果您想实时刷新该值,请使用mousemove,或者您只能使用change,但它不是实时的。

$('yourselector').on('mousemove change',function() { 
    //your code
});

答案 2 :(得分:2)

你绝对可以使用jQuery。

$('input#chance').on('change', function() { 
    $('input[name=chance]').val($(this).val()); 
});

$('input[name=chance]').on('change keyup', function() {
    $('input#chance').val($(this).val());
});

答案 3 :(得分:1)

是的,您可以使用html5元素和jQuery,如下所示:

http://jsfiddle.net/sRbHZ/

HTML:

<input type="text" name="chance" id="chance" class="text" value="50">
<input type="range" id="chance_slider" class="vHorizon" min="0.01" max="98" style="background-color: #00aec8; width: 50%;">

JS:

var slider = $('#chance_slider'),
    textbox = $('#chance');

slider.change(function() {
    var newValue = parseInt($(this).val());

    textbox.val(newValue);
});

textbox.change(function() {
    var newValue = parseInt($(this).val());

    slider.val(newValue);
});

修改

允许小数:

var slider = $('#chance_slider'),
    textbox = $('#chance');

slider.change(function() {
    var newValue = $(this).val();

    textbox.val(newValue);
});

textbox.change(function() {
    var newValue = $(this).val();

    slider.val(newValue);
});

答案 4 :(得分:1)

我觉得有用的改进

$('#chanceSlider').on('input change', function(){ $('#chance').val($('#chanceSlider').val()); });

jsfiddle http://jsfiddle.net/tDkEW/408/

答案 5 :(得分:0)

第一个ID必须是唯一的。你可以使用jQuery slider()。你可以在这里使用文本框来更新滑块中的值,反之亦然

答案 6 :(得分:0)

我建议缓存jquery选择器以提高性能 此外,ID必须是唯一的,请参阅小提琴。

var $chance_txt = $('#chance_txt'),
    $chance_slider = $('#chance_slider').on('change', function() {
        $chance_txt.val($chance_slider.val());
    });

jsfiddle

答案 7 :(得分:0)

首先让你的ID独一无二。

HTML

<input type="text" name="chance" id="display" class="text" value="50">
<input type="range" id="slider" class="vHorizon" min="0.01" max="98" style="background-color: #00aec8; width: 50%;">

JQuery的

$('#slider').on('change',function(){
  $('#display').val($('#slider').val());
});