par
Ryle » 28 sept. 2006, 10:02
Le problème que tu rencontres vient du fait qu'il n'y a dans ton formulaire qu'un seul champ "list". Du coup il n'est pas considéré comme un tableau, l'attribut ".length" n'est pas défini et par conséquent il ne rentre pas dans ton for()
Ajoute un deuxième champ (ou plus) avec le même nom, et tu devrais avoir ce que tu attends

Attention toutefois dans ta boucle, ton message d'alerte ne correspond pas au test que tu fais (si .checked est vrai, c'est que la case est cochée

) il te faudra donc légèrement revoir cette partie là...
N'hésite pas en javascript à placer des alert() régulièrement pour vérifier si tu rentre dans les boucles, les if ou simplement tester les valeurs :
Pour gérer le cas ou tu n'as qu'un seul champ, tu peux tester si le .length est défini : si c'est le cas, c'est un tableau, tu fais ta boucle, sinon, ce n'est pas un tableau et tu n'as qu'un seul élément à tester :
Code : Tout sélectionner
if(document.validation.list.length) { // deux champ ou plus
for(...) {
...
}
}
else { // un seul champ
if(document.validation.list.checked)
alert("Il n'y a qu'une seule case, cochée");
else
alert("Il n'y a qu'une seule case, non cochée");
}
Le problème que tu rencontres vient du fait qu'il n'y a dans ton formulaire qu'un seul champ "list". Du coup il n'est pas considéré comme un tableau, l'attribut ".length" n'est pas défini et par conséquent il ne rentre pas dans ton for() :)
Ajoute un deuxième champ (ou plus) avec le même nom, et tu devrais avoir ce que tu attends :) Attention toutefois dans ta boucle, ton message d'alerte ne correspond pas au test que tu fais (si .checked est vrai, c'est que la case est cochée :)) il te faudra donc légèrement revoir cette partie là...
N'hésite pas en javascript à placer des alert() régulièrement pour vérifier si tu rentre dans les boucles, les if ou simplement tester les valeurs :
[code]alert(document.validation.list.length) [/code]
Pour gérer le cas ou tu n'as qu'un seul champ, tu peux tester si le .length est défini : si c'est le cas, c'est un tableau, tu fais ta boucle, sinon, ce n'est pas un tableau et tu n'as qu'un seul élément à tester :
[code]if(document.validation.list.length) { // deux champ ou plus
for(...) {
...
}
}
else { // un seul champ
if(document.validation.list.checked)
alert("Il n'y a qu'une seule case, cochée");
else
alert("Il n'y a qu'une seule case, non cochée");
}[/code]