【问题标题】:Setting primefaces calendar end date after setting start date在设置开始日期后设置 primefaces 日历结束日期
【发布时间】:2016-02-13 13:29:07
【问题描述】:

我正在使用 primefaces 日历来创建活动。使用“mindate”参数,我禁用了当天之前的几天。即使结束日期,我也想这样做,禁用开始日期之前的几天。我不知道如何处理这个问题,因为支持 bean 仅在整个表单验证后才获得开始日期。

我需要在 inputText 字段上输入开始日期后立即设置支持 bean。

这里是 HTML:

<p:calendar immediate="true" mindate="#{createEventBean.today}" id="startingtime" value="#{createEventBean.current.startingtime}"/>

<p:calendar mindate="#{createEventBean.current.startingtime}" id="endingtime" value="#{createEventBean.current.endingtime}"/>

这里是支持 bean 的方法:

public Date getToday(){
    return new Date();
}

【问题讨论】:

    标签: jsf-2 primefaces calendar mindate


    【解决方案1】:

    您可以使用&lt;p:ajax&gt; 在选择开始日期时更新结束日期。 &lt;p:calendar&gt; 支持在选择日期时触发的 ajax 事件 dateSelect

    所以,应该这样做:

    <p:calendar value="#{bean.startDate}" mindate="#{bean.today}">
        <p:ajax event="dateSelect" update="endDate" />
    </p:calendar>
    <p:calendar id="endDate" value="#{bean.endDate}" mindate="#{bean.startDate}" />
    

    【讨论】:

    • 如果用户手动从键盘更改日期怎么办。是不是也查这个case?
    • @Furkan:如果手动更改了值,那么您可以使用事件blur,方法与dateSelect 相同。 &lt;p:ajax event="blur" update="endDate" /&gt;.
    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    相关资源
    最近更新 更多