簡體   English   中英

f:ajax不會觸發事件“ change”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM