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 :

bloquer saisie d une textarea


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut bloquer saisie d une textarea
    bonjour,

    j aimerai bloquer la saisie d une texteArea a un nombre de ligne limité et limité le nombre de charactere par ligne :

    soit par exemple 5 Lignes max et 10 characteres max par lignes ; les deux parametres sont important ; j ne dois pas avoir plus de 5 lignes , et je ne dois pas avoir des lignes trop longue , si qql un peut m aider .

    sinon , comment faire pour découper une chaine en tableau de sous chaine avec comme délimiteur \n , car cela pourrai m aider dans la résolution du 1er pb .

    Merci par avance

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Si c'est uniquement pour IE une source a déjà été donnée dans le forum.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    hormis le blocage d un champs texArea a un certains nombres de char , je n ai pas trouver la réponse a ma recherche ...

    Personne n as ne serait ce qu une piste ? ou une regEx qui me permette d isoler les phrases par /n ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    qql peut me dire pourkoi ca marche pas ce code ?
    je ne comprend pas pk qd je met un "debut" a mon indexOf , celui ci ne marche plus et me retourne tjrs -1 ?????

    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
     
    function test(c)
    {
     
    var s,n1,n2;
    n1=0;
    n2=0,
     
    s=c.value;
     
    	while(s.length != -1 )
    	{
    		s = c.value;
    		n1 = s.indexOf(n2,'\n');
    		alert(n1);
    		n2 = s.indexOf(n1,'\n');
    		alert(n2);
    		s = s.substring(n1,n2);
     
    		if( n1 == n2)
    			break;
     
    		alert(s);
    	}
    }

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut Re: bloquer saisie d une textarea
    Citation Envoyé par jeanPaul
    sinon , comment faire pour découper une chaine en tableau de sous chaine avec comme délimiteur \n , car cela pourrai m aider dans la résolution du 1er pb .
    a mon avis c est la meilleur solution, decouper en chaines sur le \n et tester le length.

    regardes la methode split des chaines
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    le nasibus , j ai inverser mes parametres et mit (n2,'\n') au lieu de: ('\n',n2) ... 8)

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    fais un split plutot tu te prendra moins la tete
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    hey po mal la methode split , reste plus qu as voir comment l exploité correctemenr , merci pour l info

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben ca va te renvoyer un tableau et t as plus qu'a tester le length de chacune des cases
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    je bloque sur ca now :

    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
     
    function test(c)
    {
     
    var s,s2,n1,n2;
    n1=0;
    n2=0,
     
    s=c.value;
     
    		s = c.value;
    		s= s.split('\n');
    		s2 = new Array(6);
    		for(i=0;i<s.length;i++)
    		{
     
    			if(i==5)
    				return false;
     
    			if(s[i].length>3)
    			{					
     
    				s2=s;
     
    				//décale tout d une ligne tant que l ont dépasse pas 5 lignes , sinon on bloque
    				for(j=i;j<s.length;j++)
    				{
    					s2[j+1]=s[i];
    				}
    			}
    		}
     
    	c.value=s2;
    	return true;
    }

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    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
     
    function test(c)
    {
       s = c.value;
     
       var tab = s.split('\n');
       if(tab.length > 5)
          return false;
     
       for(i=0;i<tab.length;i++)
       {
             if(tab[i].length>10){
                 alert('plus de 10 char sur la ligne '+i);
                 return false;
             }
       }
        // c est ok
        return true;
    }
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    il faudrai que se soit transparent , en gros , je veut faire comme pour la saisie d un SMS sur un portable , exactement la meme choses ...

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par siddh
    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
     
    function test(c)
    {
       s = c.value;
     
       var tab = s.split('\n');
       if(tab.length > 5)
          return false;
     
       for(i=0;i<tab.length;i++)
       {
             if(tab[i].length>10){
                 alert('plus de 10 char sur la ligne '+i);
                 return false;
             }
       }
        // c est ok
        return true;
    }
    et ca le pb est que ca me bloque des qu une ligne est a 10 caractere , alors que la il faudrai que je le mette a la ligne d ou l idée de tableau qui se decale d une ligne ...

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    tu veux faire quoi exactement ?
    pas trop compris l'idée du retour a la ligne avec le decalage
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    en gros , il faut que je limite la saisie a 10 char par ligne et 5 ligne :

    si il ecrit , il ne doit pas avoir d alerte tant qu il n as pas atteint les 5 ligne , et si il dépasse 10 char , il faut rajouter un retour chariot automatiquement , si il revient sur sa saisie en milieu de phrases , il faut faire un 'insert' , et décalé les lignes précédante vers le bas , mais c est en gros l equivalence de la saisie d un sms , avec pour seul action de l empeché de siasir plus qu il ne peut

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    j en suis pas tres loin mais ca bug un peu , help

    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
     
     
    function test(c)
    {
     
    var s,s2,n1,n2;
    n1=0;
    n2=0,
    maString='';
     
    s=c.value;
     
    		s = c.value;
    		s= s.split('\n');
    		s2 = new Array(6);
     
     
    		for(z=0;z<s.length;z++)
    		{
    			s2[z]=s[z];
    		}
     
    		for(i=0;i<s.length-1;i++)
    		{
     
    			if(i==5)
    				return false;
     
    			if(s[i].length>3)
    			{					
     
    				//décale tout d une ligne tant que l ont dépasse pas 5 lignes , sinon on bloque
    				for(j=i;j<s.length-1;j++)
    				{
    					if(j>0)//max de 4 cahr par ligne
    					 s2[j]=s2[j-1].substring(4,5)+'\n'+s[j].substring(0,4);
    				}
    			}
     
    		}
     
    	for(k=0;k<s2.length-1;k++)
    	{
    		if(s2[k] != null)
    			maString += s2[k];
    	}
    	c.value='';	
    	c.value=maString ;
    	return true;
    }

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    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
     
    <script type='text/javascript'>
    function test(e)
    {
     
    	var c = document.getElementById('texta');
    	var tailleMax = document.all ? 57 : 54;
     
    	if(c.value.length > tailleMax){
    		if(document.all)
    			window.event.keyCode = 0;
    		else{
    			e.returnValue = false;
    			e.preventDefault();
    		}
     
    		return false;
    	}
     
    	tab = c.value.split('\n');
     
     
    	if(document.all)
    		limit = 10+((tab.length-1)*10)+((tab.length-1)*2);
    	else
    		limit = 10+((tab.length-1)*10)+(tab.length-1);
     
    	if(c.value.length == limit)
    		c.value += '\n';
     
     
    } 
    window.onload = function(){
    	if(!document.all)
    		document.getElementById('texta').addEventListener("keypress",test,false);
    }
    </script>
    <textarea id='texta' rows="10" cols="20" onkeypress="test()"></textarea>
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    c est pas mal du tout comme code ca , mais le seul ptit pb est que si l utilisateur entre un retour chariot avant le nb max de char par ligne la ligne suivant dépase le nb max et si si il rempli tout puis supprime une ligne au milieu et la remplace , le retour chariot se met a la fin au lieu de a la suite de la ligne modiifé en cours ...

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben essayes d'adapter ce que j'ai fait
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par siddh
    ben essayes d'adapter ce que j'ai fait
    j essaye , j essaye ...MAis je n ai pas de débuger et c chaud sans débugeur de voir ce qui se passe en interne ..., va falloir que je passe a mozila et son super debugeur javascript ( celui d ie et bien mais inclus dans je sais po koi , je l ai au taf seulement )

Discussions similaires

  1. Bloquer saisie dans une PropertyGrid de type ListBox
    Par melsanka dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/09/2009, 10h57
  2. bloquer la saisie d'une liste
    Par matdrap dans le forum IHM
    Réponses: 4
    Dernier message: 11/07/2008, 15h21
  3. Réponses: 1
    Dernier message: 06/12/2007, 19h42
  4. Comment bloquer la saisie d'une touche dans un TEdit ?
    Par bahamut100 dans le forum Débuter
    Réponses: 6
    Dernier message: 01/11/2007, 11h35
  5. [tkinter] Bloquer la saisi d'une Entry
    Par airod dans le forum Tkinter
    Réponses: 1
    Dernier message: 23/07/2007, 14h57

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