6

我有带有 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}" />

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

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

4

1 回答 1

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 上的日期时间值,但是如果您熟悉另一个库或者只想处理本机函数,则不必使用它。

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

于 2013-04-12T16:25:59.870 回答