我在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);
});
但是第一个用新的日历覆盖了旧日历,而第二个看起来没有做任何事情。
一点帮助?如果这个问题已在其他地方得到解答,请原谅我。我看了,但没有找到任何似乎有帮助的东西......可能是因为我没有使用正确的术语。
答案 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;
}
那么你有它。感谢。