Connaitre le nombre de checkbox cochées dans un formulaire

Résolu
xavh44 Messages postés 2 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 12 octobre 2010 - 12 oct. 2010 à 17:37
xavh44 Messages postés 2 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 12 octobre 2010 - 12 oct. 2010 à 20:22
Bonjour,

j'essaye de vérifier, dans un formulaire qui contient plusieurs checkbox nommées de cette manière
name="choix[]"
, qu'au moins 1 checkbx est cochée.

J'ai bien vu qu'on pouvait utiliser quelque chose du style
if (ma_checkbox.checked == true)
mais dans mon cas particulier(le nommage des checkbox) je ne vois pas comment faire.

Je précise que si j'utilise ce nommage, c'est parce que ça me permet de récupérer une chaine contenant les valeurs de chacune des checkbox cochées séparées par un ; dans le script php cible.

Ci dessous le code sur lequel je suis actuellement :
<html>
<head>
<script type="text/javascript">
function check_form()
{
var tabchoix = document.mon_form.choix; // est-ce juste comme syntaxe?
alert(tabchoix.length); // ici je pensais pouvoir afficher la "taille" du tableau. Je pensais qu'elle variait en fonction du nombre de checkbox cochées...
return false; //retourne tout le temps faux pour l'exemple
}
</script>
</head>

<form name="mon_form" action="exemple.php" onSubmit="check_form();">
choix1

choix2

choix3

choix4



</form>

</html>


Merci beaucoup de votre aide(future pour cette question mais bien réelle pour les autres fois où ce site m'a apporté pleins de réponses)

2 réponses

007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
12 oct. 2010 à 19:07
Ce code devrait convenir...
var tableauDesElementsDeMonJoliFormulaire = document.mon_form.elements;
var nombreInputChecked=0;
for (i=0;i<tableauDesElementsDeMonJoliFormulaire.length;i++)
   if (tableauDesElementsDeMonJoliFormulaire[i].checked) nombreInputChecked++;
alert(nombreInputChecked)

À moins que, le javascript étant interprété, des noms un peu plus courts soient préférables ?
3
xavh44 Messages postés 2 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 12 octobre 2010
12 oct. 2010 à 20:22
Bonsoir,

merci pour la solution
0