6

私はPrimeFacesを使用しており、そのp:inputText内の最新のキーストロークに基づいてビューのいくつかのコンポーネントを更新する必要があるp:inputTextフィールドがあります。コードは次のとおりです。

<p:inputText value="#{customerLController.surnameFilterConstraint}"
             id="surnamefilterfield">
    <p:ajax event="keyup" 
            update=":custForm:custDataTable"
            listener="#{customerLController.focusSurname}"
            oncomplete="primeFacesId('surnamefilterfield')"/>
</p:inputText>

問題は、上記のコードは、矢印キーストロークの場合でも Ajax を起動することです (コストのかかる更新を考えると、これは避けたいと思います)。理想的には、ユーザーがEnterキーを押したときではなく、キーストロークで変更が発音されるという条件付きのp:ajax event="change"の別のバージョンが必要です(これが現在発生しています)。

p:ajaxコンポーネントで特定のキーアップ イベントを除外する方法が許可されていない場合、唯一の (?) 代替手段はクライアント側で JavaScript を呼び出してから、Javascript で Ajax 呼び出しを実装することだと思いますが、私はPrimeFaces のp:ajaxコンポーネントを使用する利便性を放棄しませんか?

4

1 に答える 1