Ползунок JQuery UI меняется автоматически при ручном вводе

0

Это код для моего слайдера jquery ui:

var slidervalue = 100;  
$(function () {
$( "#slider" ).slider({
range: "min",
value: 100,
min: 1,
max: 700,
slide: function( event, ui ) {
$( "#amount" ).val(ui.value );

slidervalue = ui.value;
}
});


$( "#amount" ).val( $( "#slider" ).slider( "value" ) );

});

И это дополнительная функция, которую я создал, чтобы получить номер из моего названия сделки и рассчитать экономию и отобразить результат.

 function updateSlider() {

        $.each($('.coupontitle'),function(index,coupObj){

                if ($(coupObj).text().match(/(\d+)\%/i))
                {
                  var percent = $(coupObj).text().match(/(\d+)\%/i);

                  var savings = ((percent[1]*.01) * slidervalue).toFixed(0);

                  $('span',coupObj).html('Save: $'+savings);
                }
                else if ($(coupObj).text().match(/\$(\d+)/i))
                {
                    var percent = $(coupObj).text().match(/\$(\d+)/i);
                    var savings = ((percent[1]*.01) * 100).toFixed(0);               
                    $('span',coupObj).html('Save: $'+savings);      
                }

              });
    }

этот код работает правильно вместе с ползунком. прямо сейчас, когда пользователь скользит по ползунку, количество, соответствующее ползунку, передается с использованием ui.value и передается в вышеуказанную функцию и вычисляется.

Но, когда я вводим значение в текстовое поле вручную, я хочу, чтобы ползунок перемещался автоматически, и я хочу, чтобы это значение передавалось в функцию для вычисления. Прямо сейчас, когда сумма вводится вручную, входное значение не передается в функцию.

Я хочу, чтобы ползунок работал как этот сайт: http://www.chippmunk.com/

Я столкнулся с этим jsfiddle, который выполняет эту работу, но при вводе вручную он не передает значение текстового поля в мою функцию, чтобы продолжить вычисление.

jsfiddle - http://jsfiddle.net/andrewwhitaker/MD3mX/

1 ответ

1
Лучший ответ

Это будет работать, я бы переместил $ -sign из ввода.

http://jsfiddle.net/Rusln/MD3mX/847/

$("#slider").slider({
    range: "min",
    value: 1,
    step: 1000,
    min: 0,
    max: 5000000,
    slide: function (event, ui) {
        $("input").val(ui.value);
    }
});
$("input").change(function () {
    $("#slider").slider("value",this.value);
});

ОБНОВИТЬ

http://jsfiddle.net/Rusln/KLj6Z/

$("#slider").slider({
    range: "min",
    value: 1,
    step: 1,
    min: 0,
    max: 100,
    slide: function (event, ui) {
        $("input").val(ui.value);
    }
});
$("input").on("keyup",function(e){
     $("#slider").slider("value",this.value);
});
  • 0
    спасибо rusln, но при предоставлении ввода только ползунок перемещается пропорционально, но значение не передается. я хочу, чтобы значение передавалось, когда пользователь вводит его в поле вручную, аналогично сайту www.chippmunk.com
  • 0
    при перемещении ручки ползунка значение ползунка появляется в поле ввода, при вводе значения в поле ввода ручка ползунка перемещается в положение в соответствии со значением, введенным в поле ввода. Теперь, что вы подразумеваете под передаваемым значением и куда его следует передавать?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню