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 :

Cocher un checkbox dès qu'un bouton radio est coché


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut Cocher un checkbox dès qu'un bouton radio est coché
    Bonjour,

    Je n'y connais vraiment rien en javascript, mais je pense que c'est ce qu'il faut utiliser pour mon souci.

    Je souhaite que dès que l'on coche un bouton radio parmi une liste, l'élément case à cocher correspondant de la liste soit aussi coché, comme sur l'exemple ci-dessous:



    J'ai crée une fonction en javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function BoutonCoché (identifiant)
    { 
    	boutonradio=document.getElementById(identifiant) 
    	boutoncheckbox=document.getElementById(identifiant) 
     
    	if (boutonradio.checked) boutoncheckbox.checked 
    }
    et voilà mon code dans le fichier html:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <FORM name="form" Method="POST" Action="toto.php">
    <input type="radio" name="1" id="question1" onClick="BoutonCoché(question1)"/>
    <input type="checkbox" name="1" id="question1" />a
    </br>
    <input type="radio" name="1" id="question2" onClick="BoutonCoché(question2)"/>
    <input type="checkbox" name="1" id="question2" />b
    </br>
    <input type="radio" name="1" id="question3" onClick="BoutonCoché(question3)"/>
    <input type="checkbox" name="1" id="question3" />c
    </FORM>



    Rien ne se passe.Une idée?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Rien ne se passe.Une idée?
    une ID doit être UNIQUE, qu'on ce le dise et se le répète...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Mouif...
    Mais, comment keujefé?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    taka ferkomca par exemple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form name="form" method="POST" action="toto.php">
      <input type="radio" name="1" id="r_1" onclick="BoutonCoché(1)">
      <input type="checkbox" name="1" id="c_1">a
    <br>
      <input type="radio" name="1" id="r_2" onclick="BoutonCoché(2)">
      <input type="checkbox" name="1" id="c_2">b
    <br>
      <input type="radio" name="1" id="r_3" onclick="BoutonCoché(3)">
      <input type="checkbox" name="1" id="c_3">c
    </form>
    pour les names je te laisse faire suivant le besoin.

    la fonction devenant simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function BoutonCoché( num){
        var btnradio = document.getElementById('r_' +num),
            btncheckbox = document.getElementById('c_' +num);
        btncheckbox.checked = btnradio.checked;
    }
    Il te serait profitable de t'habituer d'ores et déjà aux bonnes pratiques, déclaration des variables avec var mise en place des ; en fin d'instruction...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Niquel, c'est exactement ce qu'il me fallait.
    J'ai pû l'adapter à mon code.

    Merci!

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Une autre solution sans avoir besoin d'identifiants :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form name="form" method="POST" action="toto.php">
        <input type="radio" name="monradio" />
        <input type="checkbox"/>a
    <br>
        <input type="radio" name="monradio" />
          <input type="checkbox"/>b
    <br>
        <input type="radio" name="monradio" />
          <input type="checkbox"/>c
    </form>

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var radios = document.querySelectorAll('form input[type="radio"]');
    var cocherBoiteSuivante = function (radio) { 
        radio.nextElementSibling.checked = radio.checked; 
    };
    var cocherBoites = function(){ 
        [].forEach.call(radios, cocherBoiteSuivante);
    };
    [].forEach.call(radios, function(radio){ 
        radio.addEventListener("click", cocherBoites);
    });

    J'ai utilisé deux boucles pour décocher les boîtes précédémment cochées, ce qui n'est pas géré dans les codes précédents.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Je vois le principe.
    Par contre, pour mon projet, il ne faut pas que les autres boites soient décochées quand un radio est coché. Seulement que la boite correspondante soit elle aussi cochée.
    Donc le précédent code me convient.

    Merci à tous les 2.

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Dans ce cas le code se réduit à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var radios = document.querySelectorAll('form input[type="radio"]');
    var cocherBoiteSuivante = function () { 
        this.nextElementSibling.checked = this.checked; 
    };
    [].forEach.call(radios, function(radio){ 
        radio.addEventListener("click", cocherBoiteSuivante);
    });

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Je viens de tester, mais ça ne marche pas.

    Voilà le code que j'ai mis, à part, dans un fichier test.php
    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
     
    <script type="text/javascript">
    var radios = document.querySelectorAll('form input[type="radio"]');
    var cocherBoiteSuivante = function (radio) { 
        radio.nextElementSibling.checked = radio.checked; 
    };
    var cocherBoites = function(){ 
        [].forEach.call(radios, cocherBoiteSuivante);
    };
    [].forEach.call(radios, function(radio){ 
        radio.addEventListener("click", cocherBoites);
    });
     
    </script>
     
     
    <form name="form" method="POST" action="toto.php">
        <input type="radio" name="monradio" />
        <input type="checkbox"/>a
    <br>
        <input type="radio" name="monradio" />
          <input type="checkbox"/>b
    <br>
        <input type="radio" name="monradio" />
          <input type="checkbox"/>c
    </form>

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Pas loin :p Le script est à placer après le HTML, sinon les éléments ne sont pas encore dans le document au moment où on les cherche.
    Au passage, pense à préciser le sélecteur avec un ID ou une class au cas où tu aurais d'autres boutons radio avec un comportement différent sur ta page.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Effectivement!

    Va falloir que je m'y penche sur le javascript, pour dynamiser des pages, ça doit être pas mal!

    Merci.

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

Discussions similaires

  1. Desactiver un bouton quand un bouton radio est coché
    Par CaNiBaLe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/06/2012, 15h30
  2. Vérifier qu'un bouton radio est coché
    Par vince351 dans le forum jQuery
    Réponses: 1
    Dernier message: 11/07/2010, 22h38
  3. Exécuter une action quand un bouton radio est coché
    Par eddycool dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2009, 10h42
  4. Savoir si un bouton Radio est coché
    Par bullrot dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2008, 12h30
  5. Activer boutons checkbox SEULEMENT si un input radio est coché
    Par bobic dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/04/2006, 14h05

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