Gibt es eine einfache Möglichkeit, den Fokus (Eingabecursor) einer Webseite auf das erste Eingabeelement (Textfeld, Dropdown-Liste, ...) beim Laden der Seite zu setzen, ohne die ID des Elements kennen zu müssen?
Ich möchte es als gemeinsames Skript für alle meine Seiten / Formen meiner Webanwendung implementieren.
javascript
html
forms
focus
splattne
quelle
quelle
Antworten:
Sie können auch die jQuery-basierte Methode ausprobieren:
quelle
Obwohl dies die Frage nicht beantwortet (was ein gemeinsames Skript erfordert), könnte es für andere nützlich sein zu wissen, dass HTML5 das Attribut "Autofokus" einführt:
Das Eintauchen in HTML5 bietet weitere Informationen.
quelle
autofocus
ohne Wert zu verwendenspring:form
.autofocus="autofocus"
funktioniert aber gut. Danke, @Jacob.Dies kann mit einer Schleife verfeinert werden, um z. bestimmte Feldtypen, deaktivierte Felder usw. nicht fokussieren. Besser ist es, dem Feld, auf das Sie sich konzentrieren möchten, eine Klasse = "Autofokus" hinzuzufügen und die Formulare [i] .elements [j] zu durchlaufen, um nach diesem Klassennamen zu suchen.
Jedenfalls: Es ist normalerweise nicht eine gute Idee, dies auf jeder Seite zu tun. Wenn Sie eine Eingabe fokussieren, verliert der Benutzer die Fähigkeit, z. Scrollen Sie die Seite von der Tastatur aus. Wenn dies unerwartet ist, kann dies ärgerlich sein. Sie können also nur dann automatisch fokussieren, wenn Sie sich ziemlich sicher sind, dass die Verwendung des Formularfelds das ist, was der Benutzer tun möchte. dh. Wenn Sie Google sind.
quelle
Der umfassendste jQuery-Ausdruck, den ich gefunden habe, ist (mithilfe von hier )
quelle
Wenn Sie das Prototype JavaScript-Framework verwenden, können Sie die focusFirstElement- Methode verwenden:
quelle
Hier gibt es eine Beschreibung, die von Nutzen sein kann: Setzen Sie den Fokus auf Erste Eingabe auf der Webseite
quelle
Sie müssen auch alle versteckten Eingaben überspringen.
quelle
while
Anweisung verwenden können?Wenn Sie diesen Code am Ende Ihres
body
Tags einfügen, wird das erste sichtbare, nicht ausgeblendete aktivierte Element automatisch auf dem Bildschirm fokussiert. Es wird die meisten Fälle behandeln, die ich kurzfristig finden kann.quelle
Versuchte viele der obigen Antworten und sie funktionierten nicht. Gefunden bei: http://www.kolodvor.net/2008/01/17/set-focus-on-first-field-with-jquery/#comment-1317 Vielen Dank, Kolodvor.
quelle
Ich benutze dies:
quelle
Dies erhält die erste sichtbare gemeinsame Eingabe, einschließlich Textbereichen und Auswahlfeldern. Dies stellt auch sicher, dass sie nicht ausgeblendet, deaktiviert oder schreibgeschützt sind. Es ermöglicht auch ein Ziel-Div, das ich in meiner Software verwende (dh erste Eingabe innerhalb dieses Formulars).
quelle
Verwenden Sie Folgendes, wenn Sie JSF2.2 + verwenden und den Autofokus nicht als Attribut ohne Wert übergeben können:
Und fügen Sie es dem Namespace p hinzu (auch häufig verwendet pt. Was auch immer Sie möchten).
quelle
Mit
AngularJS
:quelle
Dies schließt Textbereiche ein und schließt Optionsfelder aus
quelle
Sie sollten clientHeight verwenden können, anstatt nach dem Anzeigeattribut zu suchen, da ein übergeordnetes Element dieses Element möglicherweise ausblendet:
quelle
Verwenden Sie ohne Bibliotheken von Drittanbietern so etwas wie
Stellen Sie sicher, dass Sie alle Formularelement-Tags berücksichtigen, versteckte / deaktivierte Tags wie in anderen Antworten ausschließen und so weiter.
quelle
ohne Abfrage, zB mit normalem Javascript:
funktioniert auf Safari, aber nicht auf Chrome 75 (April 2019)
quelle