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 :

Textare et compteur de lettres


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut Textare et compteur de lettres
    Bonjour,

    Je ne m'y connais pas du tout en javascript... J'aimerai compter le nombre de lettres dans plusieurs textarea sur une meme page.

    J'ai récupéré un script qui me permet de compter le nombre de mots dans un textarea :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    <script type="text/javascript">
    var ns6=document.getElementById&&!document.all
     
    function restrictinput(maxlength,e,placeholder){
    if (window.event&&event.srcElement.value.length>=maxlength)
    return false
    else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
    var pressedkey=/[a-zA-Z0-9\.\,\/]/ 
    if (pressedkey.test(String.fromCharCode(e.which)))
    e.stopPropagation()
    }
    }
     
    function countlimit(maxlength,e,placeholder){
    var theform=eval(placeholder)
    var lengthleft=maxlength-theform.value.length
    var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
    if (window.event||e.target&&e.target==eval(placeholder)){
    if (lengthleft<0)
    theform.value=theform.value.substring(0,maxlength)
    placeholderobj.innerHTML=lengthleft
    }
    }
     
    function displaylimit(thename, theid, thelimit){
    var theform=theid!=""? document.getElementById(theid) : thename
    var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> caractères maximum.'
    if (document.all||ns6)
    document.write(limit_text)
    if (document.all){
    eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
    eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
    }
    else if (ns6){
    document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
    document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
    }
    }
     
    </script>
    Ce script fonctionne très bien si on a qu'un seul textarea. Par contre s'il y en a plusieurs par pages, seul le 1e ligne où le message affiché sera mis à jour et pas les autres... Meme si le compteur fonctionne bien séparément pour chaque textarea, la phrase n'est pas affichée au bon endroit.. Comment faire ?

    un exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form name=form> 
    <textarea name="description" id="esp"  rows="4" cols="22" style="border: 1px double #B8C8FE; background-color: #0069B3; color: #FFCC00;"></textarea>
    <br>
    <font face="verdana" size="2" color="#B8C8FE"><script>displaylimit("","esp",250)</script><br></font>
    <textarea name="description1" id="esp1"  rows="4" cols="22" style="border: 1px double #B8C8FE; background-color: #0069B3; color: #FFCC00;"></textarea>
    <br>
    <font face="verdana" size="2" color="#B8C8FE"><script>displaylimit("","esp1",250)</script><br></font>
     
     
    </form>
    Toujours la 1e phrase qui est mis à jour... Merci pour l'aide

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    J'aimerai compter le nombre de lettres dans plusieurs textarea sur une meme page.
    pour ça, ok, je saisis la demande;
    mais le code que tu mets après est un peu difficile à décrypter, de même que tes commentaires;

    pour compter les caractères, il suffit d'unpour limiter à une catégorie de caractères, garde uniquement ceux-ci via une expression rationnelle;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    textpur=textarea.replace(\W\g,"");// vire tous les caractères non alphanum;
    alert(textpur.length);
    etc...

  3. #3
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut
    Je vais essayer ca .. merci c'est pas vraiment mon code en fait

    Merci

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut
    Bonjour

    Heu j'ai trouvé un autre script mais ca ne marche qu avec un input ... c'est à dire qu il modifie la valeur dans un inpput...

    Je voudrais pour voir l'afficher en tant que "texte"
    Comment faire?
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <head>
     
    <title>champ limité</title>
     
    <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-1" />
     
    <script type="text/javascript" > 
    function tap( a ) {
        if( window.event )
            return String.fromCharCode( window.event.keyCode ) ;
        else
            return String.fromCharCode( a.which ) ;
    }
     
    var lim = 100;
    var lim2 = 100;
     
    function limite (a) {
        if( tap( a ).charCodeAt( 0 ) == 8 ) {
            lim++ ;
            if( lim > 100 )
                lim = 100 ;
        }
        else {
            lim-- ;
        }
        document.fmlr.compteur.value = lim ;
        if( lim < 0 ) {
            document.fmlr.compteur.value = "0" ;
            document.fmlr.zonetext.blur() ;
        }
    }
     
    function limite2 (a) {
        if( tap( a ).charCodeAt( 0 ) == 8 ) {
            lim2++ ;
            if( lim2 > 100 )
                lim2= 100 ;
        }
        else {
            lim2-- ;
        }
        document.fmlr.compteur1.value = lim2 ;
        if( lim2< 0 ) {
            document.fmlr.compteur1.value = "0" ;
            document.fmlr.zonetext1.blur() ;
        }
    }
    </script>
     
    </head><body>
     
    <form name="fmlr">
        <textarea name="zonetext" cols="30" rows="4" onKeyDown="limite( event )">
        </textarea>
        <p>Il vous reste encore <input name="compteur" value="100" onFocus="this.blur();"> caractères...</p>
     
    	<textarea name="zonetext1" cols="30" rows="4" onKeyDown="limite2( event )">
        </textarea>
        <p>Il vous reste encore <input name="compteur1" value="100" onFocus="this.blur();"> caractères...</p>
     
    </form>
    Voila... C'est a dire que je voudrais avoir qq chose comme "<span ...> valeur du compteur</span> ou une balise...

    J'y connais vraiment rien dsl en javascript dsl... . J'ai compris en gros le script c'est à dire qu il remplace le value à l'aide du script. Mais comment faire ca dans du texte simple?

    Merci

    Merci

Discussions similaires

  1. [11gR2] Compteur avec lettre incrementale
    Par neGo33 dans le forum PL/SQL
    Réponses: 9
    Dernier message: 26/11/2013, 09h23
  2. mon compteur me renvoie des lettres
    Par PadawanInPerl dans le forum Langage
    Réponses: 6
    Dernier message: 30/04/2010, 11h52
  3. Compteur avec des lettres
    Par dodo91 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 19/05/2009, 16h56
  4. Utiliser une lettre comme compteur ?
    Par _Nimy_ dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/04/2008, 12h20

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