Il y a un peu de bizarrerie ici. focus
se produit sur mousedown, mais le placement du curseur se produit sur click
(c'est-à-dire un mousedown
suivi d'un mouseup
). Lorsque le curseur est placé, toute sélection disparaît.
Donc, vous voudrez probablement garder votre événement focus
(pour et trigger
fins tabulant ing) mais aussi ajouter un click
ou un gestionnaire mouseup
pour faire la sélection réelle dans le cas d'un clic.
$('input[type="text"]').focus(function() {
$(this).select();
}).click(function() {
if ($(this).val() === 'Your default value')
{
$(this).select();
}
});
Le if
existe de sorte qu'une fois qu'un utilisateur a un texte personnalisé dans votre entrée, ils peuvent cliquer autour sans sélectionner le texte. Bien que cela ne s'applique pas vraiment à une entrée de texte readonly
, il peut être supprimé en toute sécurité.
Éditer: Le code semble au mieux incohérent, ce qui peut ne pas être la solution.
Cela semble fonctionner pour moi, même si cela dépend où je clique. Cliquer sur la fin du contenu du texte fonctionne bien, cliquer au milieu fait le clin d'œil que vous décrivez la première fois et ensuite fonctionne la deuxième fois. –
J'ai testé le code ci-dessus dans jquery 1.4.3 et ça marche bien! –