簡體   English   中英

h:從javascript更改其值時,inputText不會觸發ajax更改事件

[英]h:inputText does not fire ajax change event when changing its value from javascript

我有一個輸入文本字段,當觸發keyup事件時,它會在javascript函數中更改其值; af:應該為change事件觸發的ajax:

<h:inputText ... onkeyup="functionThantChangesTextValue(this);">
    <f:ajax event="change" listener="#{someExpensiveCall()}".../>
</h:inputText>

問題是,如果我以編程方式更改javascript functionThantChangesTextValue中 inputText的值,那么ajax不會觸發更改事件

我試過這個:

function functionThantChangesTextValue(field) {
    ...
    field.value = finalValue;
    field.onchange();
}

在這種情況下,ajax事件觸發正常,但我不希望在更改值后立即發生這種情況。 我真正想要的是在更改值和失去焦點時執行ajax。

最終,我設法找到了一些使用blurfocus事件的解決方案。 focus事件中,我使用storeOldValue函數存儲舊的inputTextValue值,然后僅當當前輸入文本值與舊的輸入文本值不同時才在blur事件上執行someExpensiveCall 通過這種方式,我嘗試模擬change事件..

<h:inputText ... onkeyup="functionThantChangesTextValue(this);">
    <f:ajax event="focus" listener="#{storeOldValue()}"/>
    <f:ajax event="blur" listener="#{someExpensiveCall()}".../>
</h:inputText>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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