2009-10-30 15 views
11

Wir verwenden Richfaces in einem unserer Projekte.Richfaces - Get Element von ID

Ich muss das Element dynamisch auf einige Benutzeraktion konzentrieren. Das Problem hier ist, ich habe nur die ID

Zum Beispiel (JSF spezifische ID, die ich mit dem Elemente geben.): Für h:inputText Ich benutze es als

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

und das Eingabefeld ist in getrennter Form eingebettet . Wenn ich das Eingabefeld in Form einfüge, lautet die ID des Eingabefeldes: formName:userNameInputBox (<<formName>>:<<elementId>>)

Ich werde das Eingabefeld in mehreren JSP s wiederverwenden. Das heißt, ich kenne das Elternformular nicht, in das ich das Eingabefeld einfügen werde.

Jetzt muss ich() das Eingabefeld fokussieren. Momentan kann ich das nicht machen, da ich die tatsächlich generierte ID nicht habe (<<formname>>:<<elementId>>), aber ich habe nur die spezifische JSF-ID, die ich angegeben habe.

Wie kann ich die Fokussierung des Elements vornehmen?

Antwort

15

Verwenden Sie die RichFaces-Tag-Funktion #{rich:clientId(JSF_ID)}, um die entsprechende Client-ID für eine Komponente abzurufen. Wenn Sie das Element in der DOM-Struktur benötigen, können Sie es direkt mit #{rich:element(JSF_ID)}

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

Ich glaube, Sie Richfaces 3.2.0 oder höher für diese arbeiten müssen.

Die Dokumentation auf Richfaces JS Interaction functions

+0

Gibt es eine alternative für primefaces dies zu erreichen? Vielen Dank! –