[XHTML, Js, CSS] checkbox id et w3c validator

Salut

j’ai une liste de pays dynamique en checkbox

j’identifie mes checkbox avec id=pays pour pouvoir faire un controle en javascript

[cpp]
while ($tabPays = mysql_fetch_array($query)) {
echo « <div class="checkbox"> »;
echo « <input type="checkbox" name="pays" id="pays" value=" ».$tabPays[‹ pays ›].« " /> ».displayEmpty($tabPays[‹ pays ›]).« &nbsp; »;
echo « \n »;
}
[/cpp]
je teste que des pays sont cochés car si oui j’ai d’autres cases qui ne doivent pas etre cochées
[cpp]

for (var i=0; i<document.form2.pays.length;i++) {
if (document.form2.pays[i].checked) {
cpt++;
}
}

if((cpt > 0) && (document.getElementById(« all »).checked)){
msg = "Votre sélection des pays n’est pas logique, veuillez corriger ";
}

if((document.getElementById(« notfrance »).checked) && (document.getElementById(« all »).checked)){
msg = "Votre sélection des pays n’est pas logique, veuillez corriger ";
}
if((cpt > 0) && (document.getElementById(« notfrance »).checked)){
msg = "Votre sélection des pays n’est pas logique, veuillez corriger ";
}

if(msg!=«  »){
alert(msg);
}else{
document.form2.submit();
}
[/cpp]

ça fonctionne bien mais ça ne passe pas le w3c validator

il me répond ça pour chaque pays de ma liste

[cpp]Line 88, column 63: ID « pays » already defined
An « id » is a unique identifier. Each time this attribute is used in a document it must have a different value. If you are using this attribute as a hock for style sheets it may be more appropriate to use classes (which group elements) than id (which are used to identify exactly one element).[/cpp]

ma question :

y’a t-il un autre moyen que de mettre un id pour tester qu’une de mes checkbox pays est cochée ?

merci de votre aide

Si tu veux corriger ce mauvais pas, tu n’utilises pas d’id, mais tu fais tes vérifications sur le formulaire, et en particulier pays.

c’est ce que j’essaie de faire

[cpp]
while ($tabPays = mysql_fetch_array($query)) {
echo « <div class="checkbox"> »;
echo « <input type="checkbox" name="pays" value=" ».$tabPays[‹ pays ›].« " /> ».displayEmpty($tabPays[‹ pays ›]).« &nbsp; »;
echo « \n »;
}

[/cpp]

mais sans id avec ça
[cpp]
alert(document.form2.pays.length);
[/cpp]
j’ai une syntax error

et avec ça
[cpp]
alert(document.form2.pays.length);
[/cpp]

j’ai document.form2.pays has no properties

essaye document.form2[‹ pays ›]

pas mal ! avec ça j’ai la longueur de ma liste de pays

maintenant je veux incrémenter mon compteur pour compter le nombre de case cochées
mais
document.form2.pays[i].checked
document.form2[‹ pays[i] ›].checked

aucun des deux ne retourne true

try this :

[cpp]for ( i = 0, j = 0; i < document.form2[‹ pays ›].length; i++ )
if ( document.form2[‹ pays ›].elements[i].checked )
j++;
[/cpp]

:frowning:
pas mieux
document.form2[‹ pays ›].elements[1].checked
ça donne
document.form2[‹ pays ›].elements has no properties