Impossible de voir le texte qu'on tappe

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Ceubex
Arias
Messages : 8
Inscription : 21 août 2005, 20:10

Impossible de voir le texte qu'on tappe

Message par Ceubex »

Bonjour,

J'ai remarqué que lorsque on modifiez un champs de texte celui ci revenez toujours au début. Pas le curseur mais la zone de texte visible.

Ainsi par exemple, si je fais quelque chose du genre
<input type="text" onkeypress="this.value+='Z' "> (c'est stupide comme code mais c'est juste pour l'exemple)
Quand on tappe un mot ou deux tout va bien mais lorsque le texte tappé n'est plus visible dans son integralité il y a ce bug et quand on tappe quelque chose on ne voit pas ce qu'on tappe.

Y a t il un moyen de regler ce problème ?

Merci d'avance

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Oui, il faut enregistrer la position du curseur avec selectionEnd avant de modifier le contenu, puis remettre le curseur au bon endroit avec setSelectionRange.

Dans IE c'est différent, il faut utiliser caretPos.

Pour un exemple, regarde le code d'insertion des smileys ici même (function emoticon) :)
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Ceubex
Arias
Messages : 8
Inscription : 21 août 2005, 20:10

Message par Ceubex »

J'ai essayé et j'ai fait le code suivant :

Code : Tout sélectionner

<input type="text" onkeyup="var deb=this.selectionStart; this.value=this.value.toUpperCase(); this.setSelectionRange(deb,deb);" />
Mais le problème est toujours le même

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Oups oui j'ai oublié quelque chose : tu dois faire la même chose avec la valeur scrollTop (l'enregistrer avant et la remettre après).

http://developer.mozilla.org/fr/docs/DO ... .scrollTop
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Ceubex
Arias
Messages : 8
Inscription : 21 août 2005, 20:10

Message par Ceubex »

Alors maintenant c'est devenu

Code : Tout sélectionner

  <input type="text" onkeyup="var deb=this.selectionEnd; var pos=this.scrollTop; this.value=this.value.toUpperCase(); this.scrollTop=pos; this.setSelectionRange(deb,deb);" />
Mais ça ne marche toujours pas lol

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Heu, je crois que c'est parce que j'ai mal lu depuis le début, je pensais que tu parlais d'un champ textarea (à cause du texte qui déborde). Mea culpa :(

Alors il est possible qu'il n'y ait pas de solution, à part utiliser une zone plus grande. Essaie quand même avec scrollLeft, puisque le débordement est horizontal et non vertical comme je le pensais. On ne sait jamais.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Ceubex
Arias
Messages : 8
Inscription : 21 août 2005, 20:10

Message par Ceubex »

Ca ne marche pas avec scrollLeft
Merci quand même

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités