Ручной ввод календаря Richfaces не является обязательным - PullRequest
3 голосов
/ 16 июня 2010

У меня есть компонент календаря richfaces, определенный как

<rich:calendar id="startDate" value="#{myBean.dateSet.startDate}" 
               timeZone="#{myBean.dateSet.timeZone}"
               datePattern="#{myBean.dateSet.datePattern}"
               enableManualInput="true" immediate="true">
      <a4j:support event="onchanged" action="#{myBean.adjustEndDate}" 
                   reRender="startDate,endDate" ajaxSingle="true" />
</rich:calendar>

, когда я меняю дату с помощью всплывающего окна / графического интерфейса календаря, все работает нормально.

Однако, когда я изменяю его через текстовое поле ввода, значение не обновляется до myBean.dateSet.startDate, хотя оно корректно обновляется в самом компоненте календаря (т.е. если я нажимаю на значокдля всплывающего календаря отображается текущая текущая дата).

Любые предложения о том, как получить правильное обновление значения myBean?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 19 июня 2010

Используйте событие oninputchange, которое отслеживает изменения вручную.

1 голос
/ 28 февраля 2014

Вы можете использовать событие oninputchange внутри компонента rich: calendar, как предложил Макс Кац.

Например:

<rich:calendar 
   ...
   oninputchange="invokeCalendarOnChange(event,'#{rich:clientId('$idOfTheCalendar')}')"
   ...
</rich:calendar>

function invokeCalendarOnChange(event, id) {
   var c = RichFaces.$(id);
   c.invokeEvent("change", RichFaces.getDomElement(c.id), event, c.selectedDate);
}

Надеюсь, это поможет!

1 голос
/ 17 ноября 2011

Я не уверен, поможет ли это, но если вы хотите получить значение внутри поля ввода текста, вы называете его <calId>InputDate.Так что в вашем случае поле ввода текста будет иметь идентификатор startDateInputDate.Надеюсь, это поможет как-то!

...