не может переместить ползунок, если значение не является целочисленным - PullRequest
0 голосов
/ 18 февраля 2012

У меня проблема с плагином jQuery UI Slider . Что я пытаюсь сделать, так это то, что если в базе данных нет значения для ползунка, это означает, что рейтинг еще не был оценен, поэтому я хочу отобразить что-то вроде «Нет значения», «Ноль» или что-то в этом роде. Проблема в том, что если это значение не является целым числом, я не могу переместить ползунок. Вы можете просмотреть ДЕМО ЗДЕСЬ .

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

Ответы [ 3 ]

1 голос
/ 18 февраля 2012

Это довольно просто.Как указано в документах для ползунка , значение параметра должно быть числом, и у вас есть «-».Установите значение 0 или просто ничего (например, "") jsFiddle пример .

0 голосов
/ 18 февраля 2012

Я предлагаю связать число (например, -1) с состоянием «Нет значения» и иметь некоторую логику JavaScript, чтобы помочь вам получить то, что вы хотите:

$(".slider").slider({
    range: "min", 
    min: -1, 
    max: 10, 
    slide: function(event, ui){
        var value;
        if(ui.value == -1)
        {
            value = "--";
        }
        else
        {
            value = ui.value;
        }

        $(this).find("input.slider-value").val(value);
    },
    create: function(event, ui){
        $(this).slider("value", $(this).find("input.slider-value").val()); // value of the slider handle
    }
});

<div>
    <p style="color:green;"><b>Slider can be moved</b></p>

    <div class="slider"><br/>
        <input class="slider-value" type="text" value="3" style="text-align: center;" />
    </div>
</div>

DEMO

0 голосов
/ 18 февраля 2012

Слайдер jQuery работает на основе целочисленных значений.Что вы хотите сделать, когда ползунок "не целое число"?

Проверьте приведенный ниже код, чтобы остаться в 0, если это не число,

function getSliderVal ($this) {
    var val = $this.val();
    return isNaN(val)?0:val;
}

и в параметре значения

    ...
    value: getSliderVal (theSlider1.find("input[id=slider-value-1]")), 

    value: getSliderVal(theSlider2.find("input[id=slider-value-2]")),  
    ...

DEMO

...