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 :

Compter caractères ligne textarea


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Compter caractères ligne textarea
    Bonjour,

    Cette fonction affiche le nombre de lignes et le nombre total de caractère dans un textarea.
    Je voulais savoir si à partir de ce code, il était possible de créer une nouvelle variable pour chaque nouvelle ligne avec le nombre de caractère de cette ligne ?

    Le but étant d'afficher un message d'alerte à l'utilisateur si une des lignes dépassent x caractères ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function dymaniqueText(id){
        var text = document.getElementById(id);
        if(text.value.match(/[\r\n]/g)){
            var nbRetourChariot = text.value.match(/[\r\n]/g).length;
        }
        else{
            var nbRetourChariot = 0;
        }
        var nbCaractere = text.value.length - nbRetourChariot; ;
        nbRetourChariot += Math.ceil(nbCaractere /(text.cols))
        text.rows=nbRetourChariot;
    document.getElementById('apercu').innerHTML = nbRetourChariot+' - '+nbCaractere;
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="apercu"></div>
    <form method="post" action="traitement.php" id="form">
    <textarea style="resize:none"name="area" id="text" cols="30" onkeyup="dymaniqueText('text');" onkeydown="dymaniqueText('text');"></textarea>
     <input type="submit" class="valider_img" title="Modifier" value=""/></form>

    Petite question bonus :
    Comment dans ce script, JS peut détecter les \r\n quand automatiquement la ligne passe en dessous alors que ce script PHP ne trouve rien (à part si je fais Entrée manuellement) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $area = $_POST['area'];
    $tab_area = explode("\r\n", $area);

    Merci à vous !
    Dernière modification par Bovino ; 29/01/2015 à 16h15. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) pour activer la coloration syntaxique !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il n'y a pas déja un post sur les lignes de textarea ?
    et verifier ensuite le length de chacun des indexes du tableau ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour la réponse !

    Oui j'ai trouvé pas mal de choses mais pas ce que je recherchais et beaucoup d'abandon ...

    Du coup, j'ai ajouté ça suite à vos conseils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var blabla = text.value;
        var tab = blabla.split('\n'); 
        for (var i=0; i<tab.length; i++) {   
            if (tab[i].value.length > 5) {
                document.getElementById('erreur').innerHTML = "ERREUR";
            } 
        }
    Du coup, ça ne fonctionne pas ! J'ai testé et je sais que l'erreur vient du IF, ça ne renvoit pas la taille le tab[i].value.length.

    Je continue de chercher pour obtenir cette valeur...

    Merci !

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'avance doucement ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var blabla = text.value;
        var tab = blabla.split('\n'); 
        for (var i=0; i<tab.length; i++) {        
            if (tab[i].length > 5) {            
                document.getElementById('erreur').innerHTML = "erreur";
            } 
        }
    Maintenant, erreur s'affiche bien si une des lignes dépassent 5 caractères. Le nouveau souci, si l'utilisateur supprime les caractères en trop, le message reste ... (ce qui n'est pas illogique...)

    Je continue ! Si qq'un a une piste ... Merci !

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    la longueur de chaque ligne ce n'est pas dans "tab[i].value.length" mais dans "tab[i].length"

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    re-init avant la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var blabla = text.value;
    var tab = blabla.split('\n'); 
    document.getElementById('erreur').innerHTML = "";  // vide le contenu de l'élément
    for (var i=0; i<tab.length; i++) {        
        if (tab[i].length > 5) {            
            document.getElementById('erreur').innerHTML = "erreur";
        } 
    }

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci mathieu, juste 1 minute trop tard, j'avais trouvé !

    Et merci NoSmoking, ça marche niquel ! je clôture !

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

Discussions similaires

  1. compter saut ligne d'un textarea
    Par couse1 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2009, 11h08
  2. Compter des lignes
    Par HULK dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/05/2005, 10h20
  3. Compter les lignes d une <TABLE>
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/01/2005, 14h43
  4. [C#] Compter les lignes d'un DataSet
    Par alexischmit dans le forum ASP.NET
    Réponses: 13
    Dernier message: 26/04/2004, 15h17
  5. [LG]Compter des Lignes...
    Par Loceka dans le forum Langage
    Réponses: 7
    Dernier message: 04/03/2004, 20h29

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