Per selezionare solo il testo, devi fare qualcosa di simile:
$(".inputs-to-which-you-want-to-apply-this-behavior").focus(function() {
this.select();
});
Un altro approccio, che non selezionare il testo, ma piuttosto rimuove esso (solo per sostituirlo se si lascia vuota la casella, sarebbe simile a questa:
$(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);
});
});
});
(Preferisco quest'ultimo approccio se il testo quello che è nella scatola per cominciare è il testo segnaposto come 'Inserisci il tuo nome' ma se quello che è nella casella è, ad esempio, il nome che ho inserito l'ultima volta l'idea originale di selezionare semplicemente il testo sarebbe sicuramente migliore.)
Non è che il comportamento di default nella maggior parte dei browser? L'ho appena provato con FireFox, Opera e IE e tutti evidenziano il contenuto di un input di testo quando lo inserisco. –
Chris, mi dispiace. Sembra che tu abbia ragione. Non riesco a ricordare cosa mi ha portato lungo la strada della caccia a questo giù, ma mi sono così preso nella ricerca che ho dimenticato di ... provarlo :) –
Ah, mi ricordo ora. Il testo è * non * selezionato quando si mouse nel campo di input. Ma sei corretto, * è * il comportamento predefinito quando si * tab * nel campo di input. Modificherò il post. –