代码:
<h:inputText id="date" value="#{holidayRequestController.dates}">
<f:ajax execute="date" event="change"
listener="#{holidayRequestController.generateDates}"
render="generateDate" />
</h:inputText>
<h:panelGroup id="generateDate" class="span8"> ..</h:panelGroup>
使用此代码时,我使用日期选择器从h:inputText中选择日期,并且f:ajax将触发事件并将此日期填充到generateDate组件。 但是当我改为multiDatePicker时,f:ajax不会因事件“更改”而被触发(虽然它与事件“模糊”一起使用,但我使用“模糊”时有一些问题)。 如何使用multiDatePicker的事件“更改”? 另外一个问题:是否支持f:标签h的ajax:jsf中的inputHidden?
感谢您的支持
答案 0 :(得分:0)
如果change
事件实际上未被触发,则可能发生这种情况。如果输入元素的值仅通过JavaScript而不是通过最终用户交互来操作,则可能会发生这种情况。
基本上,当JavaScript通过element.value = newValue
操纵值,并且您希望触发change
事件时,JavaScript应该在被操作的输入元素上显式调用element.change()
。 / p>
根据$.multiDatesPicker
documentation,您可以使用onSelect
选项在select上挂钩函数。在该功能中,您只需拨打element.change()
即可。所以,给出如下输入:
<h:inputText ... styleClass="multi-dates" />
然后你可以按如下方式实现:
$(".multi-dates").multiDatesPicker({
onSelect: function() {
$(this).change();
}
});