IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Compteur de caractères dans textarea en temps réél


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 25
    Points : 12
    Points
    12
    Par défaut [Résolu]Compteur de caractères dans textarea en temps réél
    Je cherche à écrire un compteur qui affiche en temps réél le nombre de caractères entrés dans une textarea. Voila ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function calculus(count) {
    	var id = 'message'+count;
    	var content = document.getElementById(id).firstChild.data;
    	var len;
    	if (content=="undefined") {
    		len = 0;
    	} else {
    		len = content.length;
    	}
    	var remain = maxCount-len;
    	var container = document.getElementById('counter');
    	var oldContent = container.firstChild.data;
    	var oldLen = oldContent.length;
    	container.firstChild.replaceData(0,oldLen,remain);
    }
    et la textarea (généré avec DOM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            textarea1.setAttribute('id','message'+counter);
    	textarea1.setAttribute('class','txt_area3');
    	textarea1.setAttribute('onKeyDown','calculus('+counter+')');
            var textc = document.createTextNode(tabPushs[counter][3]);
    	textarea1.appendChild(textc);
    Résultat, quand je charge la page et que des données se trouvent deja dans la textarea (dans le TextNode textc), le champs se met à jour correctement. Mais quand j'entre des caractères ou que j'en supprime, ça ne se met pas à jour. Pourtant, en mettant des alert() dans ma fonction calculus, je vois que, grâce à l'event onKeyDown, ma fonction est bien appellée. Mais quand j'affiche mon "content", il est inchangé. Comment est-ce possible ?

  2. #2
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Je pense que lorsque tu detectes le 'keydown' la modification n'a pas encore eu lieue.

    tu devrais plutot essayer 'onKeyUp' ou 'onChange'

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    En fait, il suffit de remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var content = document.getElementById(id).firstChild.data;
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var content = document.getElementById(id).value;
    Le firstChild de l'élément, ça doit être le TextNode que je lui ai affecté et pas le contenu réél, j'imagine, ou un truc du genre.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Cela dit, avec onKeyUp, ça marche mieux. Avec onKeyDown, si je selectionne le text à la souris et que j'appuie sur backspace, ça ne se met pas à jour correctement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. limiter le nombre de caractères dans <textarea>
    Par swissmade dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/03/2007, 10h13
  2. Limiter le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/04/2006, 15h57
  3. Recuperer le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Langage
    Réponses: 10
    Dernier message: 14/04/2006, 11h28
  4. Afficher le nombre de caractères dans mon textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/04/2006, 09h43
  5. Décompte nb caractères dans textarea
    Par cpr0 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/09/2005, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo