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 ligne


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut Textarea : limiter le nombre de ligne
    Bonjour,

    J'aimerai pouvoir limiter sur un textarea le nombre de ligne que l'utilisateur peut utiliser.

    J'ai réussit à faire une fonction qui récupère le nombre de ligne et affiche un message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     function compte_ligne(lettre,texte)
    {
    	var nbligne_max=3;//nombre max de ligne souhaité
    	var nl="\n";//correspond au caractère retour chariot
    	if (lettre==13)
    	{
    		nbligne=texte.split(nl).length;
    		if (nbligne>=nbligne_max)
    		{
    			alert("vous ne pouvez pas écrire plus de "+nbligne_max+" lignes");
    		}
    	}
    }
    Et c la que je bloque, à la place du message j'aimerai que l'utilisateur ne puisse plus faire ni retour chariot ni écrire de texte. J'ai donc utilisé ce code

    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
     
    function compte_ligne(f,lettre,texte)
    {
    	var chaine="";
    	var nbligne_max=3;//nombre max de ligne souhaité
    	var nl="\n";//correspond au caractère retour chariot
    	var tableau=texte.split(nl);
    	var nbligne=texte.split(nl).length;
     
    	if ((lettre==13)&&(nbligne>nbligne_max-1))
    	{
    		alert("vous ne pouvez pas écrire plus de "+nbligne_max+" lignes");
    		for(var i=0;i<nbligne_max;i++)
    		{
    			chaine+=tableau[i];
    		}	
    		f.value=chaine;
    		alert(chaine);
    	}
    }
    Cela règle presque mon problème. Cependant même si l'utilisateur ne peut plus saisir de texte au dela des trois lignes, il peut encore faire 2 sauts de ligne.

    Je ne comprend pas pourquoi il y a possibilité de faire 2 sauts de ligne.

    Si qqn à une idée pour supprimer ces deux sauts de ligne.

    Voilà l'appel depuis le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="observation_form_validation_magasin" cols="50" rows="4" class="textarea" onkeyup="compte_caractere(this,this.form)" onKeyPress="compte_ligne(this,event.keyCode,observation_form_validation_magasin.value)">';
    .

    Je continue à chercher le pourquoi du comment

    merci d'avance

  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
    Par défaut
    question bête hein , mais pourquoi ne pas limiter le nombre de caractères plutôt que le nombre de lignes ??

  3. #3
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Un retour chariot c'est \r\n pas seulement \n

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    Bonjour,

    question bête hein , mais pourquoi ne pas limiter le nombre de caractères plutôt que le nombre de lignes ??
    Je limite déjà le nombre de caractère. Cependant, je génère un document pdf, après un certains nombres de traitement et pour que ce document tienne sur une page je dois limiter la saisie à 3 lignes.

    Un retour chariot c'est \r\n pas seulement \n
    Merci pour cette information. Je suis en train de regarder si ca pourrait résoudre mon soucis

    Encore merci pour votre aide

    cordialement,

  5. #5
    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
    oui un split sur un regExp de \r et \r\n et tu chopes la longueur du tableau obtenu
    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 !

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    coucou tlm

    et merci pour vos réponse.

    J'ai un peu amélioré mon code :

    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
     
    function compte_ligne(texte)
    {
    	var nl="\r\n";
    	var nbligne=texte.split(nl).length;
    	return nbligne;
    }
     
    function limit_ligne(f,lettre,texte)
    {
    	var chaine="";
    	var nbligne_max=3;//nombre max de ligne souhaité
    	var nl="\r\n";//correspond au caractère retour chariot
    	var tableau=texte.split(nl);
    	var nbligne=compte_ligne(texte);
     
    	if ((lettre==13)&&(nbligne>nbligne_max-1))
    	{
    		for(var i=0;i<nbligne_max;i++)
    		{
    			if (i<nbligne_max-1)
    			{
    				chaine+=tableau[i]+'\r\n';
    			}
    			else
    			{
    				chaine+=tableau[i];
    			}
    		}
    		f.value=chaine;
    	}
    }
    J'avais cependant encore eut un soucis avec un saut de ligne qui s'affichait malgré tous mes traitements.

    j'ai donc testé onkeyup, onkeydown et onkeypress et pour éviter qu'il prenne en compte le dernier retour à la ligne, il semble qu'il faille utiliser onkeyup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <textarea name="observation_form_validation_magasin" cols="50" rows="4" class="textarea" onkeyup="compte_caractere(this,this.form); limit_ligne(this,event.keyCode,observation_form_validation_magasin.value);">';
    Ainsi il n'affiche plus le saut de ligne à la fin .

    Encore merci pour votre aide.

    J'indique le post comme résolu.

Discussions similaires

  1. Textarea : limiter le nombre de lignes
    Par adr22 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2007, 10h53
  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