298 Stimmen

Wie auf ein Formular Eingabe-Textfeld auf Seite laden mit jQuery zu konzentrieren?

Dies ist wahrscheinlich sehr einfach, aber könnte mir jemand sagen, wie man den Cursor auf ein Textfeld auf Seite laden blinken?

108 Stimmen

Wir haben nichts gegen einfache Fragen.

4 Stimmen

@DOK das hat nicht gut gealtert.

445voto

DOK Punkte 31893

Setzen Sie den Fokus auf das erste Textfeld:

 $("input:text:visible:first").focus();

Dies gilt auch für das erste Textfeld, aber Sie können die [0] durch einen anderen Index ersetzen:

$('input[@type="text"]')[0].focus(); 

Oder Sie können die ID verwenden:

$("#someTextBox").focus();

112voto

Andrew Liu Punkte 2398

Sie können verwenden HTML5 autofocus für diese. Sie brauchen kein jQuery oder anderes JavaScript.

<input type="text" name="some_field" autofocus>

Beachten Sie, dass dies mit IE9 und niedrigeren Versionen nicht funktioniert.

30voto

Pandincus Punkte 9396

Ja, sicher:

<head>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $("#myTextBox").focus();
        });
    </script>
</head>
<body>
    <input type="text" id="myTextBox">
</body>

22voto

TD_Nijboer Punkte 1112

Warum verwendet jeder jQuery für etwas so Einfaches wie dies.

<body OnLoad="document.myform.mytextfield.focus();">

21voto

Tim Down Punkte 304837

Denken Sie über Ihre Benutzeroberfläche nach, bevor Sie dies tun. Ich gehe davon aus (obwohl keine der Antworten dies sagt), dass Sie dies tun werden, wenn das Dokument mit jQuery's ready() Funktion. Wenn ein Benutzer den Fokus bereits auf ein anderes Element gerichtet hat, bevor das Dokument geladen wurde (was durchaus möglich ist), dann ist es für ihn äußerst ärgerlich, wenn ihm der Fokus gestohlen wird.

Sie können dies überprüfen, indem Sie Folgendes hinzufügen onfocus Attribute in jedem Ihrer <input> Elemente, um festzustellen, ob der Benutzer bereits auf ein Formularfeld fokussiert hat, und um den Fokus nicht zu stehlen, wenn dies der Fall ist:

var anyFieldReceivedFocus = false;

function fieldReceivedFocus() {
    anyFieldReceivedFocus = true;
}

function focusFirstField() {
    if (!anyFieldReceivedFocus) {
        // Do jQuery focus stuff
    }
}

<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X