[英]f:ajax don't fired with event “change”
編碼:
<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不會觸發事件“ change”(盡管它與事件“ blur”一起工作,但是使用“ blur”存在一些問題)。 如何為multiDatePicker使用事件“更改”? 另一個問題: jsf中的標簽h:inputHidden是否支持f:ajax?
感謝你的支持
如果change
事件實際上未觸發,則可能發生這種情況。 如果僅通過JavaScript而不是通過最終用戶交互來操作輸入元素的值,則可能會發生這種情況。
基本上,當JavaScript通過element.value = newValue
操作值時,如果您希望觸發change
事件,則JavaScript應該在要操作的輸入元素上顯式調用element.change()
。
根據$.multiDatesPicker
文檔 ,您可以使用onSelect
選項將函數掛鈎到select上。 然后,您可以在該函數中調用element.change()
。 因此,輸入如下:
<h:inputText ... styleClass="multi-dates" />
那么您可以通過以下方式實現它:
$(".multi-dates").multiDatesPicker({
onSelect: function() {
$(this).change();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.