我有一个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>
当我使用日历弹出/ gui更改日期时,一切正常。
但是,当我通过输入文本字段更改它时,该值未更新到myBean.dateSet.startDate,尽管它正在日历组件本身上正确更新(即,如果我单击日历弹出窗口的图标它显示更新的当前日期。)
有关如何让它正确更新myBean值的任何建议吗?
谢谢!
答案 0 :(得分:2)
使用oninputchange事件,即跟踪手动更改的事件。
答案 1 :(得分:1)
我不确定这是否有帮助,但如果您想在输入文本字段中获取值,请将其称为<calId>InputDate
。因此,在您的情况下,输入文本字段将具有标识startDateInputDate
。希望这会有所帮助!
答案 2 :(得分:1)
你可以在rich:calendar组件中使用oninputchange事件,就像Max Katz建议的那样。
例如:
<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);
}
希望有所帮助!