我正在使用以下 XML 来获取生日日历:
<p:calendar pattern="MM-dd-yyyy" value="#{registration.birthDate}"
navigator="true" required="true" label="Birth Date"
id="birthDateCal" yearRange="c-100:c-17" />
日历虽然有一些问题。当我打开日历时,似乎年份会以一种有趣的方式发生变化:
有人见过这个吗?
我正在使用以下 XML 来获取生日日历:
<p:calendar pattern="MM-dd-yyyy" value="#{registration.birthDate}"
navigator="true" required="true" label="Birth Date"
id="birthDateCal" yearRange="c-100:c-17" />
日历虽然有一些问题。当我打开日历时,似乎年份会以一种有趣的方式发生变化:
有人见过这个吗?
更改为yearRange="-100:-17"
好吧,这似乎已经是 Primefaces 中列出的一个错误。
http://code.google.com/p/primefaces/issues/detail?id=2737
它被标记为不会修复,原因是它是 jQuery UI 日历组件的一个潜在错误,与 Primefaces 无关。
下面的讨论在这里更详细地讨论了 jQuery 端的这个问题。
http://forum.jquery.com/topic/datepicker-yearrange-bug
本质上 yearRange 属性并不像人们想象的那样工作。它将设置年份范围不是今天的日期,而是当前选择的日期作为日历组件的呈现日期。
编辑:
解决此问题的一种可能方法是编写一个算法,该算法根据托管 bean 方法确定动态 yearRange,并基于今天日期和生日之间的差异。您可以设置yearRange="#{managedBean.dynamicYearRange()}"
为动态调用它。