354 Stimmen

jquery input select all on focus

Ich verwende diesen Code, um zu versuchen, den gesamten Text im Feld auszuwählen, wenn ein Benutzer den Fokus auf das Feld legt. Was passiert, ist, es wählt alle für eine Sekunde, dann seine unselected und der Eingabe-Cursor ist links, wo ich geklickt habe...

$("input[type=text]").focus(function() {
   $(this).select();
});

Ich möchte, dass alles ausgewählt bleibt.

3voto

R.P. Pedraza Punkte 103

Ich benutze immer requestAnimationFrame() um interne Post-Event-Mechanismen zu überspringen, und das funktioniert in Firefox perfekt. Ich habe es nicht in Chrome getestet.

$("input[type=text]").on('focus', function() {
    requestAnimationFrame(() => $(this).select());
});

2voto

GusDeCooL Punkte 5439

Ich benutze FF 16.0.2 und jquery 1.8.3, der ganze Code in der Antwort hat nicht funktioniert.
Ich verwende einen solchen Code und es funktioniert.

$("input[type=text]").focus().select();

2voto

tectiv3 Punkte 21

Oder Sie können einfach <input onclick="select()"> Funktioniert perfekt.

2voto

asimov Punkte 71
var timeOutSelect;
$("input[type=text]").focus(function() { 
        var save_this = $(this);
        clearTimeout(timeOutSelect);
        timeOutSelect = window.setTimeout (function(){ 
                save_this.select(); 
        }, 100);
});

Verwenden Sie clearTimeout für mehr Sicherheit, wenn Sie schnell zwischen zwei Eingaben wechseln... clearTimeout löscht den alten Timeout...

2voto

Tobi G. Punkte 1366

Funktioniert hervorragend mit dem nativen JavaScript select() .

$("input[type=text]").focus(function(event) {
   event.currentTarget.select();
});

oder ganz allgemein:

$("input[type=text]")[0].select()

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