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 :
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
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
<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
Partager