Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compteur de mots

rien ne s'affiche

Sujet résolu
    2 novembre 2008 à 0:34:32

    Bonjour,

    J'ai tenté de faire un compteur de mots, mais malheureusement, il ne marche pas (rien ne s'affiche), et j'en ai aucune idée pourquoi !

    A vrai dire, je ne sais même pas d'où vient l'erreur.

    Pouvez m'aider s'il vous plaît ?

    Voici le code :
    <script type="javascript">
       function compter_mots()
       {
    	chaine = document.getElementById('texterea');
    	array = chaine.split(' ');
    	nb= array.length;
    	document.getElementById("resultat").innerHTML(nb+' trouvés');
       }
       
       </script>
       <textarea id="texterea" onchange="compter_mots()">
       
       </textarea>
    	
    	<p>Mots : <span id="resultat"></span></p>
    


    Merci de votre aide !
    • Partager sur Facebook
    • Partager sur Twitter
      2 novembre 2008 à 1:39:00

      voila Monsieur ou Madame ^^

      <script type="text/javascript">
         function compter_mots()
         {
      	chaine = document.getElementById('texterea').value;
           nb = chaine.length;
      	document.getElementById("resultat").innerHTML = nb+' trouvés';
         }
         
         </script>
         <textarea id="texterea" onkeyup="compter_mots()"></textarea>
         <p>Mots : <span id="resultat"></span></p>
      


      - A parement dans le textarea " onchange " fonctione pas sous IE j'ais donc opté pour " onkeyup "
      - pensse a bien renseigner les balise <script type="text/javascript"> et non <script type="javascript">
      - si tu ne dit pas quoi consulter dans le textarea tu va te retrouver avec une erreur ^^

      Citation : Correction

      document.getElementById('texterea').value;


      - j'ais pas comprie le placement de split
      • Partager sur Facebook
      • Partager sur Twitter
        2 novembre 2008 à 10:13:28

        Normal pour le split, il veut récuperer le nombre de mots ;) .
        La fonction devient (avec rajout d'initialisation des variables js) :
        function compter_mots() {
        	var chaine = document.getElementById('texterea').value;
        	chaine = chaine.split(' ');
        	document.getElementById("resultat").value = chaine.length + ' mots trouvés');
        }
        

        Et le xHTML :
        <textarea id="texterea" onkeyup="compter_mots()"></textarea><br />
        <label for="resultat">Mots : </label><input type="text" id="resultat" disabled />
        
        • Partager sur Facebook
        • Partager sur Twitter
          2 novembre 2008 à 11:08:19

          Bonjour,

          Merci beaucoup pour les réponses.

          Les mots peuvent être également séparés par "-" ou "'".
          Aussi, j'ai essayé de modifier un peu le script, mais rien n'y a fait :
          function compter_mots()
             {
          	chaine = document.getElementById('texterea').value;
          	array = chaine.split(' ');
          	array = array.split('\'');
          	array = array.split('-');
               nb = array.length;
          	document.getElementById("resultat").innerHTML = nb+' trouvés';
             }
          

          Le problème, je crois que faire un split d'un array, ça n'est pas vraiment possible.
          • Partager sur Facebook
          • Partager sur Twitter
            2 novembre 2008 à 12:35:14

            Voila :
            function compter_mots() {
            	var chaine = document.getElementById('texterea').value;
            	var regex = new RegExp("[ '-]+", "g");
            	chaine = chaine.split(regex);
            	document.getElementById("resultat").value = chaine.length + ' mots trouvés');
            }
            

            • Partager sur Facebook
            • Partager sur Twitter
              2 novembre 2008 à 15:56:00

              OK c'est génial merci

              Voici mon code pour ceux qui le veulent :
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                "http://www.w3.org/TR/html4/loose.dtd">
              <html lang="fr">
                 <head>
                     <title>Compteur de mots | Made by Pierre-Louis</title>
                     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
              		<meta name="author" content="Pierre-Louis pl94 " >
              
              	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="style.css">
                 </head>
                 <body>
              <script type="text/javascript">
                 function compter_mots()
                 {
              		var chaine = document.getElementById('texterea').value;
              		var regex = new RegExp("[ '-]+", "g");
              		array = chaine.split(regex);
              		nb = array.length;
              		trouve = (nb>1)?' trouvés':' trouvé';
              		document.getElementById("resultat").innerHTML = nb+trouve;
                 }	
              </script>
                   <textarea id="texterea" onkeyup="compter_mots()" rows="5" cols="25"></textarea>
                 <p>Mots : <span id="resultat"></span></p>
              
                 </body>
                 </html>
              

              HTML correct :)
              • Partager sur Facebook
              • Partager sur Twitter
                2 novembre 2008 à 17:26:48

                Deja, ta fonction, il faut que tu la déclares dans le head, et puis tu n'as pas initialisé la variable nb et trouve :
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                  "http://www.w3.org/TR/html4/loose.dtd">
                <html lang="fr">
                <head>
                	<title>Compteur de mots | Made by Pierre-Louis</title>
                	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                	<meta name="author" content="Pierre-Louis pl94 " />
                	<link rel="stylesheet" media="screen" type="text/css" title="Design" href="style.css" />
                	<script type="text/javascript">
                	function compter_mots(){
                		var chaine = document.getElementById('texterea').value;
                		var regex = new RegExp("[ '-]+", "g");
                		chaine = chaine.split(regex);
                		var nb = chaine.length;
                		document.getElementById("resultat").value = nb + (nb>1)? ' trouvés' : ' trouvé';
                	}	
                </script>
                </head>
                <body>
                	<textarea id="texterea" onkeyup="compter_mots()" rows="5" cols="25"></textarea>
                	<label for="resultat">Mots : </label><input type="text" id="resultat" disabled />
                </body>
                </html>
                
                • Partager sur Facebook
                • Partager sur Twitter
                  2 novembre 2008 à 17:30:27

                  Il n'y a pas besoin, mon doctype est transitionnel, du coup, la page est correct et marche bien.

                  Cependant, pour aller plus loin, j'ai vainement essayé de compter le nombre de mots différents.
                  Si vous pouviez m'aider, ce serait gentil :D

                  J'ai créé à cet effet ce topic http://www.siteduzero.com/forum-83-335 [...] -tableau.html
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 novembre 2008 à 18:17:51

                    Citation : pl-94

                    Il n'y a pas besoin, mon doctype est transitionnel, du coup, la page est correct et marche bien.

                    Cependant, pour aller plus loin, j'ai vainement essayé de compter le nombre de mots différents.
                    Si vous pouviez m'aider, ce serait gentil :D

                    J'ai créé à cet effet ce topic http://www.siteduzero.com/forum-83-335 [...] -tableau.html


                    Euh ça n'a rien a voir avec le doctype, tu confonds tout.
                    Normal que ta page marche, mais pas sur tous les navigateurs.
                    IE est tres sensible notament a l'utilisation de variables non définies.
                    Donc il faut bien les définir quelque part ;) .
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 novembre 2008 à 18:24:03

                      Le doctype est en rapport car le doctype d'xhtml strict n'accepte pas les fonctions hors head.

                      Quant aux définitions de variables, j'ignorais que ça ne marche pas sur IE, merci.
                      C'est sur quel version qu'il y a un problème ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 novembre 2008 à 18:52:32

                        Citation : pl-94

                        Le doctype est en rapport car le doctype d'xhtml strict n'accepte pas les fonctions hors head.

                        Quant aux définitions de variables, j'ignorais que ça ne marche pas sur IE, merci.
                        C'est sur quel version qu'il y a un problème ?


                        Nan mais ce que je veux dire, c'est que je m'en ficher que ta page soit valide ou pas, je dis juste que si tu veux que ca marche sur un maximum de navigateur, il faut que tu mettes les fonctions dans les head et que tu définisses toutes les variables que tu utilises.
                        (Ca marche pas au moins sur IE 6 ;) )
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Compteur de mots

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown