我使用带有timeOnly属性的日历,例如:
<p:calendar pattern="HH:mm" timeOnly="true" value="#{data.currentAbsenceData.ABZTIMF}" id="xabsQuickFromTime" onchange="calculateQuickHour();" timeZone="#{data.timeZone}"/>
<p:calendar pattern="HH:mm" timeOnly="true" value="#{data.currentAbsenceData.ABZTIMT}" id="xabsQuickToTime" onchange="calculateQuickHour();" timeZone="#{data.timeZone}"/>
<p:inputText id="xabsQuickHourInput" value="#{data.currentAbsenceData.ABZDAYI}">
Javascript代码:
function calculateQuickHour(){
console.log("hello _ calculateQuickHour");
getHourValue('xabsQuickFromTime', 'xabsQuickToTime', 'xabsQuickHourInput');
}
好吧,我使用日历的滑块来更改其输入字段的值,输入字段的数值会完美地更改,但javascript函数不会被"onchange"事件调用。这在Primefaces 3.5中运行良好。那么,在这种情况下应该使用什么可能的事件呢?
试试这个:
<p:ajax event="dateSelect" oncomplete="calculateQuickHour();"/>
查看org.primefaces.component.calendar.Calendar.EVENT_NAMES
以查看对日历有效的所有事件。如果您不知道哪个类实现了您的组件,请查看相应的taglib
。
如果在某些情况下这没有帮助,您可以随时在特定异常上设置无效内容和断点。就在抛出异常之前,会有一些代码将无效值与有效值进行比较。