在创建后向(primefaces)jquery日历添加选项

时间:2014-09-03 21:40:34

标签: javascript jquery primefaces calendar

我在Primefaces的参数范围内工作。我正在使用遗留代码,并且有一个我需要修改的primefaces日历,这样它只能向前导航1个月,向后导航1个月。问题是,我不能在创建日历时将onChangeMonthYear选项添加到日历中,因为它是Primefaces标记。我必须考虑遗留代码,因此我不能用jquery来代替"

我需要知道如何获取页面上的jquery组件,并为其添加一个选项。具体来说,我可以访问jquery日历,但无法弄清楚如何添加 onChangeMonthYear选项。我试过这个:

$( document ).ready($("#recsForm\\:sideAccordion\\:calendar_inline").datepicker({
                        onChangeMonthYear:  function(year, month, inst) {
                            alert("IT WORKED!!! Month is: "+month); 
                        }
                    });
}

我试过这个:

$( document ).ready(function() {
                    $('#recsForm\\:sideAccordion\\:calendar_inline').datepicker('option', 'onChangeMonthYear', 
                            function(year, month, inst) {
                        alert("IT WORKED!!! Month is: "+month); 
                    });

但是第一个用新的日历覆盖了旧日历,而第二个看起来没有做任何事情。

一点帮助?如果这个问题已在其他地方得到解答,请原谅我。我看了,但没有找到任何似乎有帮助的东西......可能是因为我没有使用正确的术语。

1 个答案:

答案 0 :(得分:0)

哇。我觉得很愚蠢。解决这个问题的最佳方法比我想象的要简单:

<p:calendar id="calendar" 
            mode="inline" 
            maxdate="#{calendarView.maxDate}"
            mindate="#{calendarView.minDate}" />

使用CalendarView.java中的相应方法:

public String getMaxDate() {
    String maxDate = "+2m -";
    Calendar cal = Calendar.getInstance();
    int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
    maxDate = maxDate.concat(String.valueOf(dayOfMonth));
    maxDate = maxDate.concat("d");
    return maxDate;
}

public String getMinDate() {
    String minDate = "-1m -";
    Calendar cal = Calendar.getInstance();
    int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
    minDate = minDate.concat(String.valueOf(dayOfMonth-1));
    minDate = minDate.concat("d");
    return minDate;
}

那么你有它。感谢。