2009-08-21 19 views
6

Ich möchte eine Texteingabe, die im Fokus wählt den gesamten Text innerhalb, wenn vorhanden. Dies ist so, dass ich auf die Texteingabe klicken und einfach mit der Eingabe beginnen kann, anstatt den aktuellen Wert löschen zu müssen, vorausgesetzt, ich möchte überschreiben, was bereits in der Texteingabe war.jQuery den ausgewählten Text

Wie würde ich das mit jQuery tun?

+0

Ist das nicht das Standardverhalten in den meisten Browsern? Ich habe es gerade mit FireFox, Opera und IE ausprobiert und sie markieren alle den Inhalt einer Texteingabe, wenn ich darauf zusteuere. –

+0

Chris, Entschuldigung. Sieht so aus, als ob du richtig liegst. Ich kann mich nicht erinnern, was mich auf den Weg gebracht hat, dies zu jagen, aber ich war so in die Suche vertieft, dass ich vergaß, es einfach zu versuchen ... –

+0

Ah, ich erinnere mich jetzt. Der Text ist * nicht * ausgewählt, wenn Sie in das Eingabefeld klicken. Aber du hast Recht, es ist * das Standardverhalten wenn du * Tab * in das Eingabefeld eingibst. Ich werde den Beitrag bearbeiten. –

Antwort

6

Couple von Links here.

$("#myInputField").focus(function(){ 
    // Select input field contents 
    this.select(); 
}); 

// Add this behavior to all text fields 
$("input[type=text]").focus(function(){ 
    // Select field contents 
    this.select(); 
}); 
4

Um nur den Text zu wählen, würden Sie so etwas wie tun:

$(".inputs-to-which-you-want-to-apply-this-behavior").focus(function() { 
    this.select(); 
}); 

Ein weiterer Ansatz, der nicht den Text auswählen, sondern entfernt es (nur um es zu ersetzen Wenn Sie das Feld leer lassen, würde in etwa so aussehen:

(Ich bevorzuge diesen letzteren Ansatz, wenn der Text das ist in der Box, um mit Platzhalter Text wie "Geben Sie Ihren Namen" aber wenn das ist in der Box ist, zum Beispiel der Name, den ich zuletzt eingegeben wurde Ihre ursprüngliche Idee der nur die Auswahl des Textes wäre sicherlich besser.)

0

Von dem, was ich ausprobiert habe, ist dies das Standardverhalten in den meisten Browsern, die ich verwende.

Obwohl select() Funktion tut, was andere gesagt haben, tut es. Stattdessen dachte ich, es würde funktionieren, den Wert des Eingabefeldes auf leer zu setzen, wenn das Feld fokussiert war.

Etwas wie:

$(":input").focus = function(){if(this.type=="text"){value=""}return true}; 
Verwandte Themen