2008-11-11 7 views
4

Je souhaite que la valeur de la zone de texte de saisie soit mise en surbrillance lorsqu'elle obtient le focus, soit en cliquant dessus, soit en cliquant dessus. Lorsqu'un champ de saisie est cliqué dans Firefox ou IE, ce champ est mis en surbrillance. Cependant, cela ne fonctionne pas dans Safari. (NOTE: cela fonctionne quand on tabulation entre les champs.)Comment surligner le champ de texte de saisie en cliquant dessus dans Safari?

Répondre

7

J'ai remarqué que Safari sélectionnait le texte, puis supprimait rapidement la sélection.

J'ai donc essayé cette solution rapide qui fonctionne dans tous les navigateurs:

function focusTest(el) 
{ 
    setTimeout (function() {el.select();} , 50); 
} 

Edit:
Lors d'autres essais, il se avère l'événement OnMouseUp déblaie la sélection de sorte qu'il suffit d'ajouter

onMouseUp="return false;" 

à l'élément d'entrée pour que les choses fonctionnent comme elles le devraient.

+0

La solution OnMouseUP fonctionne. Merci! – Emmett

+0

Cela m'a beaucoup aidé dans un problème similaire que j'essayais de déboguer. Je n'aurais jamais deviné que l'événement mouseup était le coupable. Merci! –

0

Pas sûr d'une solution spécifique à Safari ici, mais une alternative serait d'envelopper l'élément d'entrée dans un div et définir les propriétés de la frontière via CSS. Ensuite, changez la couleur de la bordure, etc. lorsque vous êtes concentré et flou.

Questions connexes