2009-08-21 14 views
6

Chcę mieć wpis tekstowy, który na fokusie wybiera cały tekst w środku, jeśli taki istnieje. To jest tak, że mogę kliknąć na dane wejściowe i zacząć pisać, zamiast usuwać bieżącą wartość, zakładając, że chcę nadpisać to, co już było w tekście.jQuery ustawić zaznaczony tekst

Jak to zrobić z jQuery?

+0

Czy nie jest to domyślne ustawienie większości przeglądarek? Po prostu wypróbowałem to w FireFox, Operze i IE i wszystkie one podświetlają treść wpisu tekstowego, kiedy go wprowadzę. –

+0

Chris, przepraszam. Wygląda na to, że masz rację. Nie pamiętam, co doprowadziło mnie do tego, by polować na to, ale ja tak się wkurzyłem, że zapomniałem po prostu ... spróbować :) –

+0

Ach, teraz pamiętam. Tekst jest * nie * zaznaczony po kliknięciu myszą w polu wprowadzania. Ale masz rację, to * jest * domyślnym zachowaniem, kiedy * wpiszesz * w pole wejściowe. Będę edytować post. –

Odpowiedz

6

Couple linków 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

po prostu zaznaczyć tekst, można zrobić coś takiego:

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

Innym podejściem, które nie ma wybrać tekst, ale raczej usuwa go (tylko go zastąpić jeśli zostawisz puste pole, będzie wyglądać mniej więcej tak:

$(document).ready(function() { 
    $(".inputs-that-currently-have-a-default-value-in-them").each(function() { 
    var original = $(this).val(); 
    $(this).focus(function() { 
     if ($(this).val() == original) 
      $(this).val(''); 
    }); 

    $(this).blur(function() { 
     if ($(this).val() == '') 
     $(this).val(original); 
    }); 
    }); 
}); 

(Preferuję to drugie podejście, jeśli tekst na początku w polu wpisz tekst zastępczy, np. "Podaj swoje imię", ale jeśli w pudełku znajduje się na przykład nazwisko, które podałem ostatnio, twój pierwotny pomysł na wybór tekstu z pewnością byłby lepszy.)

0

Z tego, co wypróbowałem, jest to domyślne zachowanie w większości przeglądarek, których używam.

Chociaż funkcja select() robi to, co powiedzieli inni. Zamiast tego pomyślałem, że będzie działało, aby ustawić wartość pola wejściowego na puste, jeśli pole było skupione.

Coś jak:

$(":input").focus = function(){if(this.type=="text"){value=""}return true}; 
Powiązane problemy