[Javascript] Pb bizarre de comptage

Pb bizarre de comptage [Javascript] - Programmation

Marsh Posté le 23-05-2002 à 14:57:47    

Le probleme est que javascript compte mal le nombre de checkbox et je comprend pas pq ... dans le code suivant g deux checkbox, le alert (lg) m'affiche 2 et tous va bien ... j'obtient le fonctionnement désiré.
Mais si je n'ai plus qu'une seule checkbox, la valeur de lg est undifined. Pq c pas 1 ? Est ce normal ?
Merci de vos réponses
 

<HTML>
 <HEAD>
 <TITLE>toto</TITLE>
 <SCRIPT LANGUAGE="JavaScript">
 
 function CheckLine()
 {
  lg=document.form.elements["log[]"].length;
  alert(lg);
  nb=0;
  for (i=0;i<lg;i++) if (document.form.elements["log[]"][i].checked) nb++;
  if (!nb)  
  {
   alert ("Please select at least one log line." );
   return false;
  }
  else return true;
 }
 
 </SCRIPT>
 </HEAD>
 <BODY>
 <FORM METHOD='POST' ACTION='mail.php' NAME='form'>
 <INPUT TYPE='checkbox' NAME='log[]' VALUE='1' />1<TD>
 <INPUT TYPE='checkbox' NAME='log[]' VALUE='2' />2<TD>
 <INPUT TYPE='submit' NAME='generate_mail' VALUE='Generate Mail' onClick='return CheckLine()' />
 </FORM>
 </BODY>
</HTML>

 

[jfdsdjhfuetppo]--Message édité par SCREAM78 le 23-05-2002 à 14:58:58--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 23-05-2002 à 14:57:47   

Reply

Marsh Posté le 23-05-2002 à 15:30:14    

up ...
 
Personne n'a été confronté au pb ?  
Merci

Reply

Marsh Posté le 23-05-2002 à 16:40:32    

Hum ... c pas clair mon pb ??? ou vous sechez :D

Reply

Marsh Posté le 23-05-2002 à 18:00:20    

up

Reply

Marsh Posté le 23-05-2002 à 18:16:25    

oui, c'est normal. en js, si tu crées un élément d'un nom, tu y accèdes dans ton exemple par document.form.elements.log .
 
s'il y en a plusieurs, tu y accèdes par tableau.
 
donc s'il n'y en a qu'un, le ....log.length renverra undefined, car length n'est pas un membre de log (car il n'est pas un tableau).

Reply

Marsh Posté le 24-05-2002 à 09:27:55    

Merci pour ta réponse ... je vais esayer de contourner le pb alors ;) mais au moins maintenant je sais pq ... merci :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed