Setzen Sie den Fokus auf eine Komponente mit Apache Wicket?
Wie legen Sie den Fokus auf eine Komponente mit Apache Wicket? Die Suche führt zu wenig information, meistens auf die Einstellung der Standard-Bereich. Ich will nicht, um eine Standard-Bereich, sondern ich bin auf der Suche zu setzen, wenn, zum Beispiel, ein bestimmter radio-button ausgewählt ist.
InformationsquelleAutor vagabond | 2010-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sobald Sie Ihr Verhalten setzen Sie den Fokus, Sie sollten in der Lage sein, um es hinzuzufügen, um die Komponente auf jeden Fall, nur stellen Sie sicher, dass die Komponente ist Teil der AjaxRequestTarget. Ich verstehe nicht, warum das nicht funktionieren würde...
Hier ist ein link, der veranschaulicht, wie erstellen Sie die Standard-Fokus-Verhalten, wenn Sie nicht schon eine haben:
http://javathoughts.capesugarbird.com/2009/01/wicket-and-default-focus-behavior.html
problem bei dieser Lösung ist, dass, sobald Sie befestigt es dann jedesmal, wenn es aktualisiert wird (AjaxRequestTarget#addComponent) es konzentriert (oder zumindest den Fokus javascript ausgewertet wird) mit AjaxRequestTarget#focusComponent ist one-shot-Fokus, so dass es besser geeignet für ein Verhalten gewünscht, in Frage ("radio-button ausgewählt ist")
InformationsquelleAutor schmimd04
Schlage ich vor, den native
org.apache.wicket.ajax.AjaxRequestTarget#focusComponent()
. Zum Beispiel:Das sollten die akzeptierten Antworten.
InformationsquelleAutor martin-g
Wenn Sie nur wollen, um setFocus über javascript und nicht neu geladen werden soll, eine form oder eine Komponente Sie können den folgenden code verwenden:
Und dann in jeder Ajax-Methode, die Sie verwenden können:
InformationsquelleAutor Marcelo
Gibt es einen Weg, um das gleiche zu erreichen ohne JavaScript?
(Ich bin Implementierung einer form mit einer feedback-Panel, das kommt nur, wenn Javascript ausgeschaltet ist, so würde es keinen Sinn machen, hängt von JavaScript gibt...,-)
Konnte ich nur Antworten finden, die JS verwenden .focs()... vielleicht Wicket 1.5 wird eine Methode Komponente.setFocus()...
Können Sie die einfache html-Attribut "autofocus". Sie können direkt hinzufügen, um die html-das erste input-tag oder dinamically hinzufügen wie " - Komponente.add(new AttributeAppender("Autofokus", ""));" Prüfen Sie meine kurze Antwort.
InformationsquelleAutor Gregor
Wenn Sie geschehen, werden mit einem Ajax-Schaltfläche, rufen Sie einfach
target.focusComponent(myComponent);
in der SchaltflächeonSubmit
Methode.InformationsquelleAutor icecreamhead
Für eine pop-up-wie modalWindow meine Abhilfe Lösung war die Verwendung der Attribut "autofocus" auf das erste input-tag.
Eine einfache Lösung ist, um es in den html-Code direkt.
Andere Lösung ist, um es der modalWindow selbst:
RadioChoice ist auskommentiert, da diese Lösung nicht arbeiten. Für RadioChoice ich würde empfehlen, zu implementieren FocusedRadioChoice:
InformationsquelleAutor BlondCode