Parcours de checkbox multiples
Bonjour,
Je rencontre un problème dans une fonction qui traite les checkbox cochées dans un formulaire.
Mes checkbox ont le même nom, et tout se passe bien quand il y en a au moins deux.
Le code utilisé est le suivant :
Code:
1 2 3 4 5
|
demandes = document.forms['monForm'].demandes
for (i=0; i < demandes.length; i++) {
[...]
} |
et c'est ce qu'on retrouve de manière systématique partout où l'on parle de parcours de checkbox.
Là où ça se corse, c'est quand il n'y a qu'une seule checkbox : je récupère un input plutôt qu'un tableau, ce qui fait planter la fonction.
Il y a diverses solutions pour vérifier si demandes est un tableau ou non, la plus rapide que j'aie trouvée est de faire
Code:
1 2 3 4 5 6
|
if (demande.length) {
// on traite un tableau
} else {
// on traite un input seul
} |
Mais c'est peut satisfaisant (tant sur le test effectué, que sur l'obligation de faire 2 cas séparés).
Mes questions sont donc :
1. quelle est la meilleure pratique pour tester si "demandes" est un tableau ou un élément simple ? (remarque : "demandes instanceof Array" retourne false)
2. n'y a t-il pas un moyen de récupérer "demandes" sous forme de tableau qu'il n'y ait qu'une seule checkbox ou plusieurs ? (par exemple comme avec document.getElementsByName(), qui retourne toujours un tableau - mais malheureusement "document.forms['monForm'].getElementsByName('demandes')" ne fonctionne pas :cry:)