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

时间:2013-03-05 10:01:00

标签: jquery jsf time primefaces slider

我有使用Primefaces 3.5的JSF webapp,我希望有一个范围滑块,但有时间值(小时:分钟)..如图所示

slider 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}" />

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

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

1 个答案:

答案 0 :(得分: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");
    }
});

我正在使用momentjs,因为它是一个很好的库来处理javascript上的datetime值,但是如果你熟悉另一个库或者只是想处理本机函数,则不必使用它。

如果您有任何疑问,请与我们联系。