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 :
et c'est ce qu'on retrouve de manière systématique partout où l'on parle de parcours de checkbox.
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++) { [...] }
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
Mais c'est peut satisfaisant (tant sur le test effectué, que sur l'obligation de faire 2 cas séparés).
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 }
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 )
Partager