2015-01-19 3 views
0

Я использую календарь для создания события. С параметром «mindate» я отключил дни до текущего дня. Я хочу сделать это даже с датой окончания, отключив дни до даты начала. Я не знаю, как с этим справиться, поскольку бэк-компонент получает дату начала только после проверки всей формы.Настройка даты окончания календаря после установки даты начала установки

Мне нужно, чтобы бэк-компонент был установлен сразу после ввода даты начала в поле inputText.

Здесь 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}"/> 

здесь метод Подкладочный бина:

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

ответ

2

Вы можете использовать <p:ajax> обновить дату окончания на выбор даты начала. <p:calendar> поддерживает событие 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}" /> 
+0

Что делать, если пользователь изменит дату с клавиатуры вручную. Это также проверить этот случай? – Furkan

+0

@Furkan: если значение было изменено вручную, вы можете использовать событие 'blur' так же, как и для' dateSelect'. ''. –

Смежные вопросы