如果值不是整数jquery ui滑块,则无法移动滑块

时间:2012-02-18 16:27:20

标签: jquery jquery-ui slider jquery-ui-slider

我在这里使用jQuery UI Slider插件时遇到问题。我想要完成的是,如果数据库中没有滑块的值,这意味着还没有评级,所以我想显示类似“No value”或“Nil”之类的东西。问题是,如果该值不是整数,我无法移动滑块手柄。您可以查看 DEMO HERE

为什么会发生这种情况,不知道我做错了什么,如果值不是有效整数,为什么我不能移动滑块。

3 个答案:

答案 0 :(得分:1)

这很简单。作为docs for the slider say,value参数必须是数字,并且您有“ - ”。将您的值设为0或仅为零(例如“”)jsFiddle example

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我的建议是将一个数字(例如-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