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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 )