3 votes

Afficher le début de la valeur de l'entrée HTML sur le flou avec JavaScript

J'ai une entrée de largeur fixe de type texte. Si l'utilisateur saisit une longue valeur dans ce champ, j'aimerais que le début de la valeur soit affiché lorsque l'entrée n'a plus de focus.

Le comportement par défaut dans FF et IE laisse l'affichage de la valeur du champ dans le même état. Chrome, en revanche, semble se comporter comme je le souhaite, il affiche le début de la valeur.

J'ai essayé de réinitialiser la position du curseur dans IE par le biais de la méthode Select() de l'objet textRange, mais cela semble réinvoquer l'événement de flou, ce qui entraîne une chaîne récursive (je ne sais pas trop pourquoi, mais c'est un autre problème).

Quelqu'un a-t-il des suggestions à faire ? Il doit y avoir un moyen facile de faire cela ?

3voto

tcooc Points 5006

J'ai assemblé ce code, il fonctionne sur IE8. Le site setTimeout de 1ms est due au fait qu'IE affiche automatiquement la deuxième valeur si la valeur d'une zone de texte est définie deux fois dans une rangée (surprenante) :

function resetPosition(element){
    var v = element.value;
    element.value="";
    setTimeout(function(){element.value = v;},1);
}

Testé également sur IE7, et discret sur Chrome (qui le fait automatiquement).

0voto

Sen Points 1

Vous pouvez appeler element.setSelectionRange(0, 0) pour définir la position.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X