Comment afficher 2 checklend sur une même page

WRInaute discret
Bonjour,
Sur un formulaire j'ai 2 textarea, un dont la valeur est de 50 à 200 caractères et l'autre de 400 à 999 carcatères.
Il semblerait que les deux scripts ne se tolèrent pas car c'est soit l'un ou soit l'autre qui fonctionne mais jamais les 2 en même temps.

Voici le JS de ces checklend:
Code:
<script type="text/javascript">
   function CheckLen(Target) 
   { 
      var StrLen = Target.value.length; 
      var CharsLeft = 900; 
      var CharsMust = 400; 
      if ( StrLen>900 ) { 
         Target.value = Target.value.substring(0,900); 
         CharsLeft = 0; 
         CharsMust = 0; 
      } else { 
         CharsLeft = (CharsLeft - StrLen); 
         CharsMust = (StrLen<CharsMust) ? (CharsMust - StrLen) : 0; 
      } 
      document.form2submit.reste.value = CharsLeft; 
      document.form2submit.oblige.value = CharsMust; 
   }
 </script>
<script type="text/javascript">
   function CheckLen(Tar) 
   { 
      var StrLen = Tar.value.length; 
      var CharsLeft = 200; 
      var CharsMust = 50; 
      if ( StrLen>900 ) { 
         Tar.value = Tar.value.substring(0,200); 
         CharsLeft = 0; 
         CharsMust = 0; 
      } else { 
         CharsLeft = (CharsLeft - StrLen); 
         CharsMust = (StrLen<CharsMust) ? (CharsMust - StrLen) : 0; 
      } 
      document.form2submit.restecourt.value = CharsLeft; 
      document.form2submit.obligecourt.value = CharsMust; 
   }
 </script>

Le code php du premier :
Code:
         <textarea name="description" cols=50 rows=5 class="descr_add_site_annuaire" onKeyDown="CheckLen(this)" onKeyUp="CheckLen(this)"><?php echo $description ?></textarea>
         <br />
Il vous reste <input type=text name=reste> caractères dont encore <input type=text name=oblige>  obligatoires.

Puis du second :
Code:
         <textarea name="description_c" cols=50 rows=5 class="descr_add_site_annuaire" onKeyDown="CheckLen(this)" onKeyUp="CheckLen(this)"><?php echo $description_c ?></textarea>
         <br />
Il vous reste <input type=text name=restecourt> caractères dont encore <input type=text name=obligecourt>  obligatoires.

Quoi j'ai fait qui va pas encore ? :lol:
 
WRInaute accro
C'est normal tu définis 2 fois la même fonction CheckLen().
Tu as juste à donner un nom différent à la seconde, et adapter le code onkeyXXX du second textarea.

NB: Sur l'événement onkeyup ça suffit, pas besoin de faire sur onkeydown aussi.
 
WRInaute discret
Et avec un truc de ce genre (pas tester) :

Code:
<script type="text/javascript">
   function CheckLen(Target, InfoReste, InfoOblige, Min, Max) 
   { 
      var StrLen = Target.value.length; 
      var CharsLeft = Max; 
      var CharsMust =  Min; 
      if ( StrLen>900 ) { 
         Target.value = Target.value.substring(0,Max); 
         CharsLeft = 0; 
         CharsMust = 0; 
      } else { 
         CharsLeft = (CharsLeft - StrLen); 
         CharsMust = (StrLen<CharsMust) ? (CharsMust - StrLen) : 0; 
      } 
      InfoReste.value = CharsLeft; 
      InfoOblige.value = CharsMust; 
   }
</script>

et plus loin
Code:
<textarea name="description" cols=50 rows=5 class="descr_add_site_annuaire" onKeyDown="CheckLen(this, document.form2submit.reste, document.form2submit.oblige, 50, 200)" onKeyUp="CheckLen(this, document.form2submit.reste, document.form2submit.oblige, 50, 200)"><?php echo $description ?></textarea>
Il vous reste <input type=text name=reste> caractères dont encore <input type=text name=oblige>  obligatoires.
...
<textarea name="description_c" cols=50 rows=5 class="descr_add_site_annuaire" onKeyDown="CheckLen(this, document.form2submit.restecourt, document.form2submit.obligecourt, 400, 999)" onKeyUp="CheckLen(this, document.form2submit.restecourt, document.form2submit.obligecourt, 400, 999)"><?php echo $description_c ?></textarea>
Il vous reste <input type=text name=restecourt> caractères dont encore <input type=text name=obligecourt>  obligatoires.
 
WRInaute discret
Je veux bien essayer mais c'est normal que dans le js on ne parle pas de la valeur 200 ?
Tu penses que la partie php va le gérer seule ?
J'essaye demain pour voir.
 
WRInaute discret
Super !!
Ca marche nickel, merci. Ca faisait 3 jours que je cherchais une solution à ce problème.
Un grand merci IllusionPerdu :D
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut