IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Parcourir les input de type checkbox d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut Parcourir les input de type checkbox d'un formulaire
    Bonjour à tous.

    Je me suis inspiré d'un bout de code trouvé dans la FAQ pour créer cette magnifique fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
            function valider() {
                var inputList = document.forms['MonForm'].elements;
                var alertTxt = '';
                var alertTxt2 = '';
                var compteur = 0;
                var c = 0;
                for (unInput in inputList){
                    compteur++;
                    alertTxt2 += compteur + ' : ' + unInput.checked + '\n';
                    if(unInput.checked){
                        c++;
    		            alertTxt += unInput.name + '\n';
    	            }
                } // End For
                alertTxt += c + ' checked sur ' + compteur + '\n';
                alert(alertTxt);
                alert(alertTxt2);
            }
    Le contenu de mon <form id="MonForm" name="MonForm" action=""> est généré par de l'ASP et ne contient que des checkbox ayant tous un id et name uniques.

    La fonction est appelée par l'appui sur un <button onclick="valider()"> lorsque l'utilisateur a fini de chocher les checkbox qu'il veut.

    Lorsque la fonction est appelée, ma boucle for est bien exécutée autant de fois que j'ai de checkbox dans mon formulaire, puisque mon alert(alertTxt); m'affiche bien le bon nombre d'input parcourus.

    Le problème est que dans le for, mon unInput.checked (ainsi que des unInput.name et unInput.id que j'ai testé) renvoit "undefined".
    Pourquoi mon unInput.checked ne renvoit-il pas "true" ou "false" ou "0" ou "1" ou "on" ou que sais-je ?
    Qu'ai-je mal fait ?

    Merci pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Après plusieurs tests, je me rend compte que ma boucle for est exécutée plus de fois que prévu (1074 fois alors que je n'ai "que" 940 checkboxes et rien d'autre dans le formulaire, le bouton de validation se trouve avant le <form>).

    J'ai tenté de filtrer sur la propriété type de mon unInput avec un if(unInput.type=='checkbox') dans la boucle for, mais il ne trouve aucun élément de ce type.

    Si quelqu'un a une idée, je suis preneur, en attendant je continue à creuser.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    J'ai le resultat que j'attendais en changeant complètement ma boucle for en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(compteur;compteur!=inputList.length;compteur++){
        alertTxt2 += compteur + ' : ' + inputList[compteur].checked + ' : ' + inputList[compteur].name + ' : ' + inputList[compteur].id + '\n';
        if(inputList[compteur].checked){
            c++;
            alertTxt += inputList[compteur].name + '\n';
        }
    } // End For
    C'est donc le for (unInput in inputList) qui posait problème.

    Voilà

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2012, 14h51
  2. Réponses: 12
    Dernier message: 10/06/2010, 13h37
  3. Comment rendre un input de type checkbox non modifiable
    Par beeboo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/08/2008, 13h54
  4. parcourir les input radio d'un formulaire
    Par 123quatre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/11/2007, 16h11
  5. [DOM IE]:recuperer tous les input de type checkbox
    Par sleepy2002 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/12/2004, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo