Forum Clubic

[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