LIMITER LE NOMBRE DE CARACTÈRE DANS UN TEXTAREA - NOUVELLE VERSION ?

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 19 oct. 2005 à 13:07
cs_catlord Messages postés 3 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 20 mai 2010 - 20 mai 2010 à 12:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34251-limiter-le-nombre-de-caractere-dans-un-textarea-nouvelle-version

cs_catlord Messages postés 3 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 20 mai 2010
20 mai 2010 à 12:14
Très bon script, merci
Dark_Balor Messages postés 2 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 27 mai 2009
27 mai 2009 à 17:24
merci pour le code c'est exactement ce que je cherchais
bristohn Messages postés 1 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 12 août 2007
12 août 2007 à 09:54
sympa ce code. merci
chankalan Messages postés 16 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 17 décembre 2007
5 juil. 2006 à 08:38
parfait parfait parfait, c'est exactement celui-ci que j'ai essayé d'écrire... mais keskispas l'avait déjà fait...

juste que pour 2 textarea, ça fonctionnait pas avec
LimiterTextArea(document.frmPage.commentaire2, 255, div_decompte2);
mais avec
LimiterTextArea(commentaire2, 255, div_decompte2);

merci pour ce code utile et intelligent !
cs_keskispas Messages postés 46 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 26 août 2008
24 mai 2006 à 12:10
saminfo25 c'est pas mal mais on retombe dans tout ce que j'ai voulu éviter avec mon script :
- Le nombre de caractères max est DANS la fonction. Donc si on veut fixer plusieurs limites il faut dupliquer la fonction pour chacune d'entre elles.
- La référence aux évènements est inscrit dans chaque textarea, alors si on a 10 textareas, il faut enchainer les copier-coller pour chacun, en faisant gaffe au reste du dév qui pourrait s'appuyer sur ces mêmes évènements (contrôle de saisie...)
- les évènements OnKeyUp et OnKeyPress ne couvrent pas tous les moyens de mettre du texte dans un textarea (et donc d'en fixer les limites !) tel que le drag&drop avec la souris.

Donc, ton exemple est plus simple à comprendre, mais à l'usage plus lourd à maintenir.
saminfo25 Messages postés 3 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 17 mai 2006
17 mai 2006 à 20:13
krolineeeeeeee Messages postés 3 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 22 mars 2006
22 mars 2006 à 15:03
Heu nikel ta source mais j'ai une petite question, quand je met le textarea dans un formulaire et je j'utilise un input de type 'reset', le compteur de caractères ne revient pas au nombre de départ, soit si j'ai une taille de 150 et ke je met 10 caractères dans la textarea, qd je reset, le text disparait mais le compteur reste à 140...
T'aurais pas une petite idée pour résoudre mon ptit bug stp??

Merci
kroline
TetsuoSan Messages postés 2 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 26 février 2006
26 févr. 2006 à 15:33
Très bonne source !
Moi qui ne fait pas de javascript, j'ai parfois besoin de quelques fonctions histoire de rendre mes sites plus fonctionnels, donc, merci beaucoup pour cette contribution.
PS : j'ai opté pour le GetElementByID proposé par RUKET01, afin de mieux correspondre aux normes W3C, et également pour eviter d'avoir à repérer le "form" dans lequel le controle se trouve.

Bonne continuation :)
cs_keskispas Messages postés 46 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 26 août 2008
10 janv. 2006 à 14:42
Dans le code
"LimiterTextArea(document.frmPage.commentaire, 10, div_decompte);"
remplace "div_decompte" par "document.div_decompte".

Je pense que ça vient de là
paranonyme Messages postés 2 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 9 janvier 2006
9 janv. 2006 à 11:42
Bonjour, et Merci pour la réponse,

J'ai juste une dernière petite question.

Je suis sur mac et j'ai tester différents navigateurs en ma possession (camino, opera, safari, firefox, netscape). J'ai rencontré un problème uniquement avec netscape 7.2 mac, ça ne fonctionne pas.
Quelqu'un aurait-il une idée de ce qui pose problème et sur pc y a t'il un problème?
J'ai essayé de voir ce que le debugger racontait mais je ne sais pas la faire fonctionner, la javascript console indique div_decompte not defined?

...
cs_keskispas Messages postés 46 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 26 août 2008
5 janv. 2006 à 10:41
Tout à fait. La fonction est paramétrable à chaque textarea. Je m'explique :

Pour ton 1er textarea:

<textarea id="commentaire1" name="commentaire1" class="limiter"></textarea>



<script language="Javascript" type="text/javascript">
LimiterTextArea(document.frmPage.commentaire1, 150, div_decompte1);
</script>


Pour ton 2è :

<textarea id="commentaire2" name="commentaire2" class="limiter"></textarea>



<script language="Javascript" type="text/javascript">
LimiterTextArea(document.frmPage.commentaire2, 255, div_decompte2);
</script>


Tu auras donc 2 textareas :
le premier nommé "commentaire1", avec un compteur "div_decompte1" et qui n'accepte que 150 caractères. Le second "commentaire2", avec le compteur "div_decompte2" et qui en accepte 255 maxi.

Voilà !
paranonyme Messages postés 2 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 9 janvier 2006
4 janv. 2006 à 10:10
Bonjour,

Une petite question par rapport à ce code, est-il possible d'insérez dans ma page 2 textarea avec des limitation de caractère différent?

Merci d'avance.
ruket01 Messages postés 1 Date d'inscription jeudi 24 novembre 2005 Statut Membre Dernière intervention 24 novembre 2005
24 nov. 2005 à 16:30
Merci pour ton code très efficace. Par contre, y a juste un truc que j'ai dû modifié à cause de warning sur la console JDOM (en tout cas avec Mozilla) car il vaut mieux récupérer les éléments avec un document.getElementById('monId').

Pour ça j'ai juste changé l'appel à LimiterTextArea par:

LimiterTextArea('commentaire', 10, 'div_decompte');

et la fonction LimiterTextArea par:

function LimiterTextArea(idArea, nbcar, idDecompte)
{
moncontroletexte = document.getElementById(idArea);
moncontroledecompte = document.getElementById(idDecompte);

moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};

// Affichage du nombre de caractères restant
moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
}

A part ça, le code est nickel. Merci encore.
cs_keskispas Messages postés 46 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 26 août 2008
29 oct. 2005 à 17:18
Pour Meduse, la modification est dispo !
cs_Meduse Messages postés 11 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 1 novembre 2005
29 oct. 2005 à 08:45
Merci pour ton code mais il manque un décompte des caractère au fur et à mesure que l'utilisateur tape c'est caractère dans le textarea. as-tu un code tel celui la

merci

meduse
cs_keskispas Messages postés 46 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 26 août 2008
21 oct. 2005 à 23:43
Je complique parceque si je viens avec ma souris et que je colle 500 caractères avec le clic droit dans ton textarea, ta fonction ne servira à rien car elle ne teste pas le bon évènement.

Dans ma description, j'ai écris : "On évite ainsi de répéter tous les évènements intérressants à chaque fois qu'on pose un textarea."

C'est exactement pour éviter ton code que j'ai créé celui là !
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 oct. 2005 à 13:07
pourquoi compliquer ?
<HTML>
<HEAD>
<script type="text/javascript">
function TextAreaEstRempli(moncontroletexte, nbcar)
{
if (moncontroletexte.value.length > nbcar)
moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);
}
</script>
<TITLE></TITLE>
</HEAD>

<textarea onkeyup="TextAreaEstRempli(this,10);"></textarea>

</HTML>