从 Javascript 限制 Primefaces datePicker 分钟和秒

问题描述 投票:0回答:1

我使用 datePicker Primefaces 元素来允许用户选择小时、分钟和秒的值。目前,小时的值介于 0 到 24 之间,分钟的值介于 0 到 60 之间,秒的值也相同。

我想将这种选择的可能性限制为一些静态值,这些值是通过获取页面上发布的视频的长度而获得的。我在 JS 中有小时、分钟和秒的值。

因此,例如,如果视频有 1 分 30 秒,我希望小时部分不允许用户按向上或向下箭头,分钟最大为 30,分钟为 1。我尝试了以下方法使用 JS,但出现错误:“timePicker.setMaxTime 不是函数”。在Java中,我可以在Primefaces datePicker上设置minDate和maxDate,但我不知道那里视频的长度,我只能从JS找到它。

我能做什么?

UI datePicker 元素:

                                <p:datePicker id="timeDatePicker"
                                              widgetVar="widgetVarOfDatePicker"
                                              value="#{traineeDashboard.newIncidentTimestamp}"
                                              appendTo="@this">
                                    <f:converter converterId="timeConverter"/>
                                </p:datePicker> 

JS代码:

    var timePicker = PF('widgetVarOfDatePicker'); // Replace with your actual widgetVar
    var hoursDropdown = $('div.ui-hour-picker span:eq(1)');
    var minutesDropdown = $('div.ui-minute-picker span:eq(1)');
    var secondsDropdown = $('div.ui-second-picker span:eq(1)');

    hoursDropdown.text(hours);
    minutesDropdown.text(minutes);
    secondsDropdown.text(seconds);

    if (hours == 0) {
        timePicker.setMaxTime(minutes, seconds);
    } else {
        timePicker.setMinTime(hours, minutes);
    }

    hoursDropdown.trigger('change');
    minutesDropdown.trigger('change');
    secondsDropdown.trigger('change');
} 
javascript java primefaces
1个回答
1
投票

这将很难完成,因为很多内部日期选择器代码都以 60 秒、60 分钟等为单位进行转发。

多年来一直有公开票:https://github.com/primefaces/primefaces/issues/5551

您可能想对该问题进行投票,但请注意,其他 PrimeFaces 库 PrimeNG 等都不允许这样做,所以我怀疑它是否会被实现。

© www.soinside.com 2019 - 2024. All rights reserved.