【发布时间】:2016-09-07 11:12:52
【问题描述】:
我有一个表单,上面有两个 primefaces 日历输入元素和一个数据表。日历项用于将表中显示的结果过滤为从到值。因此,我使用了一个 p:ajax 'dateSelect' 事件,当鼠标悬停在弹出窗口上进行操作时,该事件运行良好。但是,当我使用键盘在输入字段中手动更改日期时,不会触发任何更改事件。当我使用第二个 p:ajax 事件进行模糊或更改时,我无法获得新值。
<p:calendar id="startDate"
value="#{filterStart}"
required="true"
showOn="button"
maxdate="#{filterEnd}"
>
<p:ajax event="dateSelect"
listener="#{listController.onFilterStartChanged}"
update="filterTbl, endDate" />
<p:ajax event="change"
listener="#{listController.onFilterStartBlured}"
update="filterTbl, endDate"
process="@this"
partialSubmit="true" immediate="true" />
</p:calendar>
在对小狗进行选择时调用 onFilterStartChanged 方法,可以读取新值:
public void onFilterStartChanged(final SelectEvent event) {...}
但将焦点移动到另一个组件时不会触发键盘更改
public void onFilterStartBlured(final AjaxBehaviorEvent event) {
Date newDate = (Date)((Calendar)event.getSource()).getValue();
...
}
我怎样才能得到新的日期?
【问题讨论】:
标签: ajax primefaces calendar