Jsf 允许在primefaces中动态显示特定范围的日期

Jsf 允许在primefaces中动态显示特定范围的日期,jsf,events,date,primefaces,Jsf,Events,Date,Primefaces,我使用maxdate和mindate为两个日期字段(from date和to date)使用以下代码动态选择日期- <p:calendar id="FromDate" value="#{controller.fromDt}" showOn="button" maxdate="#{controller.toDt}" > <p:ajax event="dateSelect" update="ToDate"></p:ajax> <

我使用maxdate和mindate为两个日期字段(from date和to date)使用以下代码动态选择日期-

<p:calendar id="FromDate" value="#{controller.fromDt}" showOn="button" 
    maxdate="#{controller.toDt}" >
       <p:ajax event="dateSelect" update="ToDate"></p:ajax>
    </p:calendar>

 <p:calendar id="ToDate" value="#{controller.toDt}" showOn="button"
     mindate="#{controller.fromDt}">
       <p:ajax event="dateSelect" update="FromDate"></p:ajax>
    </p:calendar>

如果选择了日期,一切似乎都很顺利。这些限制将应用于其他从属日历。如设置了fromDate,则限制将应用于todate。但一旦使用backspace或delete删除了fromdate,则toDate字段中仍然存在限制

我知道当删除日期时,它不是dateSelect事件,但即使尝试放置valueChange事件也不会起作用,因为valueChangeEvent只有在提交页面时才会触发

有人能给我一个解决这个问题的办法吗。提前感谢。

只需添加另一个更改事件即可

<p:calendar id="FromDate" value="#{controller.fromDt}" showOn="button" 
  maxdate="#{controller.toDt}" >
   <p:ajax event="dateSelect" update="ToDate"></p:ajax>
   <p:ajax event="change" update="ToDate"></p:ajax>
</p:calendar>


首先,我很抱歉这么晚才回复。但是Hatem,我仍然无法从其他从属日历中删除限制。据我所知,只有在提交表单时才会触发更改事件。但在这种情况下,我没有提交任何表格,我只是删除了日期。就这样。如果我错了,请纠正我。
p:ajax
将在日历更改、删除或修改日期后触发(而不是通过selectionPanel)。然后它将用当前值更新另一个日历,因此该属性将被传递给验证器。它在我的项目中运行良好@Manish你能把这个问题标记为正确的并且投了赞成票吗?我不知道为什么投了反对票!甚至我也试过这么做……但它说我缺乏声誉。投票需要15个名声。由于我是StackOvetrflow的新手,我现在没有那么多回购协议……对不起,伙计。一旦我到了15岁,我会投票支持它。