JSF - 具有"时间"值的范围滑块

aft*_*bit 6 time jquery jsf slider primefaces

我有Primefaces 3.5的JSF webapp,我希望有一个范围滑块,但有时间值(小时:分钟)..如同这张图片

滑块http://img547.imageshack.us/img547/3112/timeslider.jpg

这是具有整数值的范围滑块的代码:

<h:panelGrid columns="1" style="margin-bottom:10px">                    
    <h:outputText id="displayRange" value="Between #{sliderBean.number6} and #{sliderBean.number7}"/>                    
    <p:slider for="txt6,txt7" display="displayRange" style="width:400px" range="true" 
              displayTemplate="Between {min} and {max}"/>
</h:panelGrid>
<h:inputHidden id="txt6" value="#{sliderBean.number6}" />
<h:inputHidden id="txt7" value="#{sliderBean.number7}" />
Run Code Online (Sandbox Code Playgroud)

其中sliderBean.number6和sliderBean.number7是整数..我认为做我想要的是重新定义显示范围值的jquery幻灯片函数,并使用"分钟"而不是"小时".

    $(function() {
    $(".slider-range").slider({
        range: true,
        min: 0,
        max: 1440,
        step: 15,
        slide: function(e, ui) {
            var hours = Math.floor(ui.value / 60);
            var minutes = ui.value - (hours * 60);

            if(hours.length == 1) hours = '0' + hours;
            if(minutes.length == 1) minutes = '0' + minutes;

            $('#displayRange').html(hours+':'+minutes);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但是......老实说..我不知道该怎么做..(如果这是正确的方法..)谢谢!

Rac*_* R. 0

我已经制作了一个使用jQRangeSlidermomentjs 的小提琴

http://jsfiddle.net/tPMsv/7/

$("#slider").dateRangeSlider({
    bounds: { 
        min: moment().startOf("day").toDate(), 
        max: moment().endOf("day").toDate() 
    },
    defaultValues: { 
        min: moment().startOf("day").add("hours",6).toDate(), 
        max: moment().endOf("day").subtract("hours",6).toDate()
    },
    formatter: function (value) {
        return moment(value).format("HH:mm");
    }
});
Run Code Online (Sandbox Code Playgroud)

我使用 momentjs 是因为它是一个很棒的库,可以处理 javascript 上的日期时间值,但如果您熟悉另一个库或只想处理本机函数,则不必使用它。

请让我知道,如果你有任何问题。