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 :

checkbox action auto


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut checkbox action auto
    bonjour,

    j'aimerais modifier cette fonction pour que lorsque tous les choix sont cochés le principal soit coché

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <html><head>
    <title>checkbox maître</title>
    <script>
    //checkbox ou une liste de checkbox.
    function selectall(cas,choix){
      //test si on a plusieur ligne
      if(choix.length>0){
        if (cas.checked){
          for (var i=0; i<choix.length;i++){
            choix[i].checked=true
          }
        }
        else{
          for (var i=0; i<choix.length;i++){
            choix[i].checked=false
          }
        }
      }
      else{
        if (cas.checked){
          choix.checked=true
        }
        else{
          choix.checked=false
        }
      }
    }
     
    function clearcas(cas,choix){
    	if (cas.checked){
    		cas.checked=false
    	}else{
    		if (choix.checked){
    		cas.checked=true
    		}
    	}
    }
    </script>
    </head>
     
    <body>
    <form name="monform">
    <input type="checkbox" name="spec" onclick="selectall(document.monform.spec,document.monform.sub_spec)">
    puis un liste de checkbox
    <input type="checkbox" name="sub_spec" value="1" onclick="clearcas(document.monform.spec,document.monform.sub_spec)">
    <input type="checkbox" name="sub_spec" value="2" onclick="clearcas(document.monform.spec,document.monform.sub_spec)">
    <input type="checkbox" name="sub_spec" value="3" onclick="clearcas(document.monform.spec,document.monform.sub_spec)"></form>
    </body></html>

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    quoi personne ne voit comment je pourrais faire ou je me suis mal exprimé ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Est-ce que tu as bien mis les majuscules sur ton onClick?...

    Sinon, qu'est-ce qui ne marche pas? A première vue, ça semble correct... peut-être à simplifier: dans ta fonction selectall,
    est inutile. Même s'il n'y a qu'un élément, length rend 1, et ta boucle fonctionne. Et s'il n'y en a aucun, ... ben elle n'est pas censée être appelée ... non?

  4. #4
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    ben j'aimerais juste que si les 3 sont coché le principal se coche tout seul

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    ce n'est peut être pas possible?

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    je n'arrive pas a trouver la logique pour que cela fonctionne

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Je pense que tu t'embeterai moins en faisant plusieurs fonctions bien disticntes :

    - une quand on clique sur la "super case"
    - une quand on clique sur une "sous-case"

    Je pense que ce serai plus simple pour t'y retrouver.

    De plus,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="sub_spec" value="1" onclick="clearcas(document.monform.spec,document.monform.sub_spec)">
    <input type="checkbox" name="sub_spec" value="2" onclick="clearcas(document.monform.spec,document.monform.sub_spec)">
    <input type="checkbox" name="sub_spec" value="3" onclick="clearcas(document.monform.spec,document.monform.sub_spec)"></form>
    tes checkbox ont toutes le même nom, et à moins d'une subtilité particulière que je n'arrive pas à comprendre, c'est pas pour les checkbox ça, mais pour les radio. Comme ça, tu ne récupéreras qu'une seule des valeurs cochées (la dernière il me semble), et je suis pas sûr que ce sois ce que tu veux.

    Je regarderai au boulot, je crois me souvenir d'avoir déjà fais un script qui fais ce que tu veux :
    - quand tu coche/décoche la "super-case", ça coche/décoche toute les "sous-cases" (ça marche déjà ça)
    - quand tu coche/décoche une des "sous-cases", ça coche la "super-case" si toutes les "sous-cases" sont cochées, ou ça la décoche si toutes les "sous-cases" ne sont pas cochées

    une fois de plus si j'ai bien compris.

  8. #8
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    oui c'est exactement ca

    voici le code de mes checkbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="spec[]" value="8">Arbitrage en alternatieve geschillenbeslechting
    	<input type="checkbox" name="sub_spec[]" value="150" checked="yes">Arbitrage ad hoc
    	<input type="checkbox" name="sub_spec[]" value="142" checked="yes">Alle
    je stock dans un tableau pour pouvoir les réutiliser facilement en php

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    Bonsoir,

    Désolé pour le temps de réponse, mais j'ai pas eu le temps ces 2 derniers jours.

    Donc, voila le script final :

    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
    21
    22
    23
    24
    25
     
    //Cette fonction applique à toute les checkbox du groupe l'etat passé en paramètre
    //Il faut donc l'appeller sur l'évenement onclick de la "supercase" comme ceci :
    //onclick="selectionnerGroupe(this.checked,form.nom_groupe);"
     
    function selectionnerGroupe(estCochee,groupe)
    {
    	for (var i=0; i<groupe.length;i++){
    		groupe[i].checked=estCochee;
    	}
    }
     
    //Cette fonction passe en revue toutes les checkbox du groupe
    //Si elle sont toutes cochées, la "supercase" est cochée, sinon, elle est décochée
    //Il faut donc l'appeller sur l'évenement onclick de toutes les cases du groupe comme ceci :
    //onclick="verifierGroupe(form.nom_groupe,form.nom_supercase);"
    function verifierGroupe(groupe,supercase)
    {
    	etat = true;
    	for (var i=0; i<groupe.length;i++){
    		etat = etat & groupe[i].checked;
    	}
     
    	supercase.checked = etat;
    }
    Si tu as des questions ou que tu veux plus de commentaires, n'hésite pas.

  10. #10
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 64
    Points
    64
    Par défaut
    ok cela fonctionne dans ton example mais le problème ets que je dois utiliser des noms de tableaux spec[] pour les récupérer en php et cela ne fonctionne plus a ce moment la

Discussions similaires

  1. [C#][DataGridView] Action quand on change la valeur d'une CheckBox
    Par TheParadoX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/09/2006, 10h08
  2. session destroy , action auto+X/heur
    Par ruty dans le forum Langage
    Réponses: 10
    Dernier message: 21/03/2006, 21h48
  3. action checkbox
    Par philippe123 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2005, 09h51

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