2013-07-05 2 views
4

У меня есть код ниже на моем веб-сайте и интегрирован слайдер диапазона с использованием HTML5. Я хочу, чтобы ползунок обновлял ввод текста со значением и наоборот. Будет ли я делать это с помощью jQuery? Если да, то вы можете привести примерный код?Ползунок HTML Range и 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%;"> 
+0

ID должен быть уникальным для всех элементов. – Puuskis

+0

ID должны быть уникальными, поэтому вы не можете поместить 2 или более одинаковых идентификаторов на одну страницу. –

ответ

0

Первых Идентификаторы должны быть unique.You можно использовать JQuery slider() Вы можете использовать текстовое поле здесь, чтобы обновить это значение в слайдере и наоборот

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()); 
}); 
+0

keyup не является обязательным –

0

Предлагаю кэшировать селектора jquery для повышения производительности.
Иконы должны быть уникальными, см. Скрипку.

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

jsfiddle

0

Сделайте ваши уникальные идентификаторы первым.

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()); 
}); 
10

Вы можете использовать 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/

+0

Обратите внимание, что в текстовом поле с запущенным событием «keyup», если вы копируете только с помощью мыши, он не обновляет слайдер. Чтобы применить эту функциональность, вы должны добавить к ней событие «change». Чтобы сказать логику этого: «change» возникает, когда текстовое поле теряет фокус и значение изменилось, «keyup» возникает каждый раз, когда вы отпускаете клавиатуру. – Puuskis

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); 
}); 

EDIT

Для разрешения DECIMALS:

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); 
}); 
+0

Спасибо большое. Но когда я использую этот код, он не дает десятичных знаков? –

+0

просто удалите 'parseInt': change' parseInt ($ (this) .val()); 'to' $ (this) .val(); ' – mkutyba

3

Если вы хотите обновить значение в режиме реального времени, используйте mousemove, или вы можете просто использовать change, но это не в режиме реального времени.

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

Смотрел повсюду для обновления в реальном времени. Благодарю. – AndyDunn

Смежные вопросы