5

ユーザーがテキストを変更し、inputTextがフォーカスを失った(onchange)場合に実行valueChangeListenerしたいと思います。p:inputTextこれは可能ですか?今のところ、リターンを押した後にのみ実行されます。

4

1 に答える 1

20

このvalueChangeListenerメソッドでは、フォーム送信を呼び出す必要があります。これはサーバー側のイベントであり、クライアント側のイベントなどではありません。入力を変更してぼかすだけでは、デフォルトではフォームはまったく送信されません。<p:ajax>魔法をかけるために持ってきてください。

<p:inputText value="#{bean.inputValue}" valueChangeListener="#{bean.inputChanged}">
    <p:ajax />
</p:inputText>

ただし、これが正しい解決策であると考えた具体的な機能要件については何も言わなかったものの、これはあなたが考えてvalueChangeListenerいた仕事にとって間違ったツールであることが多いことを述べておきたいと思います。<p:ajax listener>代わりに使用してください。

<p:inputText value="#{bean.inputValue}">
    <p:ajax listener="#{bean.inputChanged}" />
</p:inputText>

これにより、EL 2.2でメソッド引数を渡すことが可能になり、すぐに他の(実際にはかなり貧弱な)質問の潜在的な基本的な機能要件に答えることに注意してください

<p:inputText value="#{bean.inputValue}">
    <p:ajax listener="#{bean.inputChanged('arg1', 'arg2')}" />
</p:inputText>

また、入力した値に実際に関心がある場合は、これが解決策ではない可能性があることにも注意してください。inputValueプロパティに直接アクセスできます。

参照:

于 2012-12-20T15:41:04.893 に答える