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 :

Textarea : limiter le nombre de lignes


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 74
    Points : 53
    Points
    53
    Par défaut Textarea : limiter le nombre de lignes
    Bonjour

    Je souhaite utiliser ce script pour pouvoir limiter la saisie dans un de mes textarea.

    Mon seul pb est que lorsque l'utilisateur tape "enter", il faudrait que le compteur perde le nombre de caractères restant sur la ligne :
    Ex : sur une ligne pouvant contenir 40 caractères, si j'en ai tapé 25et que je tape "enter", alors il faudrait que le compteur perde (40-25)=15.

    Est- ce possible ?

    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
    <script language="javascript" type="text/javascript">
    function calculeLongueur(){
       var iLongueur, iLongueurRestante;
       iLongueur = document.getElementById('monchamp').value.length;
       if (iLongueur>30) {
          document.getElementById('monchamp').value = document.getElementById('monchamp').value.substring(0,30);
          iLongueurRestante = 0;
       }
       else {
          iLongueurRestante = 30 - iLongueur;
       }
       if (iLongueurRestante <= 1)
          document.getElementById('indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;re&nbsp;disponible";
       else
          document.getElementById('indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;res&nbsp;disponibles";
    }
    </script>
    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    je viens de tester ton code et il fonctionne , j'ai du rater la question ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 74
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Oui le code fonctionne, sauf que lorsque l'utilisateur tape "ENtrée" je souhaiterai que le décompte l'enlève pas 1 et la différence de caractères (si ma ligne doit faire 40 caractères et que j'en ai tapé 25 avant de taper "entrée", alors lors du passage à la ligne, le décompte aura -(40-25).

    L'objectif de tout ça étant que je puisse délimiter mon textarea à 3 lignes de 40 caractères.

    Merci

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Ok j'ai compris tu souhaites que les retour chariot ne soit pas compté comme des caractères ...

    Pour faire ceci, je passe par une expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	Expression = new RegExp("\r\n","gi") //\r\n représente les retours a la ligne
    	var resultat = value.match(Expression); //Value représente la valeur de ta textarea
    			if(resultat){
    				valeurMAx = nbCaractMax + resultat.length;
    //valeurMax représente le nouveau nombre de caractères maximum
    //valeurMAx  = nombre de caractère max définit + nombre de retour chariot trouvé
    			}
    			else{
    				valeurMAx = nbCaractMax
    			}
    Bon voici l'implémentation dans une fonction identique a la tienne :

    //Fonction javascript
    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
     
    var nbCaractMax = 40 ;
     
    	function verifMax(textAreaATester){
     
    		with(textAreaATester){
    			//si on a atteint le nombre de caractères maximum
    			Expression = new RegExp("\r\n","gi")
    			var resultat = value.match(Expression);
    			if(resultat){
    				valeurMAx = nbCaractMax + resultat.length;
    			}
    			else{
    				valeurMAx = nbCaractMax
    			}
    			if(value.length > valeurMAx){
    				//on affecte la valeur de la textarea a 40 caractères max ou 40+le nombre de retour chariot
    				value = value.substr(0, valeurMAx);
    			}
    		}
     
    	}
    Coté html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <textarea onkeypress="verifMax(this)"></textarea>
    Il te reste a modifier la condition de nombre de caractère mais bon , je vais te laisser bosser un peu

Discussions similaires

  1. Textarea : limiter le nombre de ligne
    Par narutobaka dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 19/01/2009, 11h08
  2. Limiter le nombre des lignes en résultat
    Par Grand sorcier dans le forum Oracle
    Réponses: 1
    Dernier message: 11/07/2006, 14h30
  3. Limiter un nombre de lignes
    Par Trunks dans le forum Access
    Réponses: 5
    Dernier message: 25/01/2006, 13h29
  4. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  5. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16

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