11

プロジェクトの 1 つでRichfacesを使用しています。

ユーザーのアクションに動的に要素を集中させる必要があります。ここでの問題は、私が id (要素に与えるJSF固有の id ) しか持っていないことです。

例:h:inputText私はそれを次のように使用します

<h:inputText id="userNameInputBox" value="<<some binding>>/>

この入力ボックスは別のフォームに埋め込まれています。フォームに入力ボックスを含めると、入力ボックスの ID は次のようになります。formName:userNameInputBox (<<formName>>:<<elementId>>)

複数のJSPで入力ボックスを再利用します。つまり、入力ボックスを含める親フォームがわかりません。

ここで、入力ボックスを focus() する必要があります。現在、実際に生成された ID ( ) を持っていないため、これを行うことはできませんが、<<formname>>:<<elementId>>指定した JSF 固有の ID しか持っていません。

要素のフォーカスを機能させるにはどうすればよいですか?

4

1 に答える 1

15

RichFaces タグ関数#{rich:clientId( JSF_ID )}を使用して、コンポーネントの適切なクライアント ID を取得します。DOM ツリー内の要素が必要な場合は、直接取得できます。 #{rich:element( JSF_ID )}

例: onclick="#{rich:element('userNameInputBox')}.focus()"

これが機能するには、RichFaces 3.2.0 以降が必要だと思います。

Richfaces JS Interaction 関数に関するドキュメント

于 2009-11-05T10:02:53.753 に答える