当一个月或一年更改时,禁用其他日历中的天数

时间:2015-08-13 21:13:47

标签: primefaces calendar

我有两个日历(startDate和endDate)我有一个功能可以禁用除星期一之外的所有日子,或者在startDate日历中启用下一个工作日到星期一假日。我有一个功能,可以禁用星期五以外的所有日子,或者在结束日历中将前一个工作日启用到星期五。当我在startDate日历中选择日期时,它会自动选择endDate日历中的某个启用日期,反之亦然。当用户更改任何日历中的月份或年份时,日历将关闭,我需要保持打开状态。我还需要在startDate日历中选择日期时,它会调用禁用另一个日历中日期的功能。似乎该函数运行但它不会禁用另一个日历的日期

javascript功能:

<h:panelGroup id="scriptPG">
    <script>
        //<![CDATA[
            function disableStartDateDays(date) {
                var daysToDisable = #{bean.disableStartDates};
                var month = date.getMonth(), day = date.getDate(), year = date.getFullYear();
                for (i = 0; i < daysToDisable.length; i++) {
                    if ($.inArray((month + 1) + '-' + day + '-' + year, daysToDisable) != -1) {
                        return [ false ];
                    }
                }
                return [ true ];
            }
            function disableEndDateDays(date) {
                var daysToDisable = #{bean.disableEndDates};
                var month = date.getMonth(), day = date.getDate(), year = date.getFullYear();
                for (i = 0; i < daysToDisable.length; i++) {
                    if ($.inArray((month + 1) + '-' + day + '-' + year, daysToDisable) != -1) {
                        return [ false ];
                    }
                }
                return [ true ];
            }
        //]]>
    </script>
</h:panelGroup>

日历:

<p:calendar id="startDate" widgetVar="startDateWV" ... >
    <p:ajax event="dateSelect"
        listener="#{bean.selectEndDate}"
        oncomplete="disableEndDateDays(PF('startDateWV').getDate());"
        process="@this"
        update="endDateCAL @this" />
    <p:ajax event="viewChange"
        listener="#{bean.findDaysToDisableStartDate}"
        process="@this endDateCAL"
        update="@this scriptPG" />
</p:calendar>

<p:calendar id="endDate" widgetVar="endDateWV" ... >
    <p:ajax event="dateSelect"
        listener="#{bean.selectStartDate}"
        oncomplete="disableStartDateDays(PF('endDateWV').getDate());"
        process="@this"
        update="startDateCAL @this" />
    <p:ajax event="viewChange"
        listener="#{bean.findDaysToDisableEndDate}"
        process="@this startDateCAL"
        update="@this scriptPG" />
</p:calendar>

startDate calendar:

enter image description here

结束日历:

enter image description here

0 个答案:

没有答案