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