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 :

fonction pour compter le nombre de checkbox coché ?


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut fonction pour compter le nombre de checkbox coché ?
    Salut a tous, je voulais savoir si il existe une fonction pour compter le nombre de checkbox coché dans un formulaire?
    (Pour éviter de faire checkbox poar checkbox car c'est un formulaire dynamique).

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Non, tu devras écrire toi-même la fonction.
    Tu peux boucler sur le tableau elements[ ] et tester le type de chaque élément (propriété type), si tu as affaire à une checkbox vérifie si elle est cochée avec la propriété checked.

  3. #3
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    oui mais le probleme c'est que le nom des checkbox est imprévisible. EN fait je récupert des résultats de ma base de donné sous forme d'un tableau et je peut suprimer ces résultat avec mes checkbox.

    Les noms des checkbox est imprévisible. Mais je vais peut etre essayer avec une boucle php en mettant du javascript dedans.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Death83
    oui mais le probleme c'est que le nom des checkbox est imprévisible
    C'est pour cela que je te propose de boucler sur elements[ ] : pas besoin de connaître le nom des éléments.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for ( i = 0 ; i < oForm.elements.length ; i++ ) {
        if ( oForm.elements[i].tagName.toLowerCase( ) == "input" ) {
            [...]
        }
    }
    Mais je vais peut etre essayer avec une boucle php en mettant du javascript dedans.
    Pitié non !

  5. #5
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Salut merci pour ta réponse mais je ne connais pas tout ces "termes" javascript.

    Deja pour commencer ca veut dire quoi oform?

    en fait pourais tu me commenter chacune de ces ligne s'il te plait?

  6. #6
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    oForm est le nom donne a ton formulaire dans ta balise form. Dans ce cas precis, pour que le script marche tel quel il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form id="oForm" name="oForm">
    Je ne suis pas sur que id et name soient tous les deux indispensables.
    ++
    Fred.

  7. #7
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    a la place de elements je met checkbox c'est ca?

    et puis input je met checked?

    Et tagname je le remplace par quoi?

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Death83
    a la place de elements je met checkbox c'est ca?
    et puis input je met checked?
    Et tagname je le remplace par quoi?
    Y'a du boulot on dirait
    Bon, je te fais une fonction qui retourne le nombre de checkbox cochées d'un formulaire passé en paramètre

    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
    19
    20
    function countCheckedCheckboxes(oForm) {
        var i, n = 0 ;
        var oElement ;
     
        for ( i = 0 ; i < oForm.elements.length ; i++ ) {
            oElement = oForm.elements[i] ;
            // tagName permet de connaître le nom de l'élément
            // Je ne m'intéresse qu'aux <input> de type checkbox
            // Les .toLowerCase( ) me permettent d'être insensible à la casse
            if ( oElement.tagName.toLowerCase( ) == "input" ) {
                if ( oElement.type.toLowerCase( ) == "checkbox" ) {
                    // La propriété checked est à true si la checkbox est cochée
                    if ( oElement.checked == true ) {
                        n++ ;
                    }
                }
            }
        }
        return n ;
    }
    Exemple d'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var n = countCheckedCheckboxes(document.form["form-name"]) ;

  9. #9
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    ok merci,

    oui je sais il ya du boulot :p. Ca fait un peu plus d'une semaine que je me suis mis au javascript alors faut bien commencer :p.
    Et mon principe c'est de comprendre ce que je code et donc de ne pas mettre bettement les codes que vou sme donnez. COmme ca ca m'offre plus de possibilité par la suite .

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/01/2009, 10h20
  2. fonction qui calcule le nombre de checkbox cochés
    Par namstou3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2007, 13h55
  3. Fonction pour limiter le nombre de checkboxes cochees
    Par nabab dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/07/2007, 20h24
  4. compter le nombre de checkbox coché
    Par mademoizel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/06/2006, 16h03
  5. Compter le nombre de CheckBox cochées
    Par dj-julio dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/02/2006, 14h06

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