11548 sujets

JavaScript, DOM et API Web HTML5

bonjour,

comment pourrais je m'y prendre pour créer une fonction qui lorsque un retour a la ligne est fait dans un textarea, incrémente un compteur et que si ce compteur est égal 20, on ne puisse plus continuer dans le textarea. Attention les retour sont des retour auto fait avec \n et non manuellement avec enter.

Je ne n'arrive pas à trouver une solution concrète, quelqu'un pour m'aider

Merci
Tu peux nous en dire un peu plus ...

Qu'est-ce qui génère le texte ? PHP ? Javascript ? Autre ?
Pourquoi cette limite ? ( Il y a peut-être une solution plus simple )
but est que si une personne dépasse le nombre total de ligne elle ne puisse plus insérer ni de lignes ni de caractères. ca te semble compliqué? Le texte est généré par la personne qui l'écrit ou lorsque le texarea affiche ce qui est dans la BD
gforce a écrit :
Le texte est généré par la personne qui l'écrit

donc les \n peuvent etre générés par la touche entrée contrairement à ce que tu dis au debut de ton post. A moins que tu aies omis de nous dire quelque chose Smiley smile

Sinon, un petit split sur \n ou \r\n à voir, avec le contenu de ton textarea à chaque saisie de caractères.
Si split te rend un tableau dont la taille est égale à ta limite, tu bloques tout...
Bonsoir
si ce n'est pas l'utilisateur qui tape le message voilà une solution
en JS. Sinon il faut tester chaque caractère tapé par l'utilisateur (gérer l'événement "frappe sur le clavier" et récupérer le caractère tapé


<script type="text/javascript">
function compter()
{
	var cpt = 0;
        monTexte = "debut\nfin du message\nencore\un peu ";
	document.getElementById("Zonetextarea") .value= monTexte;
	for (i=0; i < monTexte.length;i++)
		if (monTexte.charAt(i) == '\n')
			cpt++;
	if (cpt == 20)
		document.getElementById("Zonetextarea") .disabled = "disabled";
}
</script>