Bei folgender HTML-Struktur:
<div class="wrapper">
<div class="top">
<a href="http://example.com" class="link">click here</a>
</div>
<div class="middle">
some text
</div>
<div class="bottom">
<form>
<input type="text" class="post">
<input type="submit">
</form>
</div>
<div>
Wie setze ich den Fokus auf das Eingabefeld in der Seite? .bottom
Div, wenn ein Benutzer auf den Link im .top
Div klickt ?
Ich lasse das .bottom
Div derzeit erfolgreich beim Klicken mit dem folgenden JQuery-Code erscheinen, kann aber nicht herausfinden, wie der Fokus gleichzeitig auf das Eingabefeld gesetzt werden kann.
$('.link').click(function() {
$(this).parent().siblings('div.bottom').show();
});
Vielen Dank!
return false;
am Ende des Ereignisrückrufs ausgeführt werden? Oderfunction(e) { e.preventDefault(); ..... }
? Wenn nicht, navigiert Ihr Browser nur zu dieser Seite, nachdem er den Rückruf ausgeführt hat.Antworten:
Versuchen Sie dies, um den Fokus auf das erste Eingabefeld zu setzen:
quelle
input
&:first
. Spleißt jQuery das automatisch? Ich habe immer gedacht, dass es sein sollteinput:first
.input:first
könnte die formellere Art sein, es zu schreiben, obwohl es einfacher zu sein scheint, es anders zu lesen. Aber vielleicht bin das nur ich :)$(this).parent().siblings('div.bottom').find("input.post").focus();
Aber es.find()
ist der Selektor, nach dem ich gesucht habe. Interessanterweiseinput :first
nochinput:first
funktioniert.form
Tags befindet. Wie auch immer, ich bin froh, dass du zur Arbeit gehst!Wenn sich die Eingabe zufällig in einem modalen Bootstrap-Dialog befindet, ist die Antwort anders. Kopieren von So legen Sie den Fokus auf die erste Texteingabe in einem Bootstrap-Modal fest, nachdem Folgendes gezeigt wurde :
quelle
Justins Antwort hat bei mir nicht funktioniert (Chrom 18, Firefox 43.0.1). jQuery's
.focus()
erstellt eine visuelle Hervorhebung, aber der Textcursor wird nicht im Feld angezeigt (jquery 3.1.0).Inspiriert von https://www.sitepoint.com/jqueryhtml5-input-focus-cursor-positions/ habe ich dem Eingabefeld und voila ein Autofokus- Attribut hinzugefügt!
quelle