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

jQuery Discussion :

cocher un input radio en cliquant sur une div


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 66
    Points : 41
    Points
    41
    Par défaut cocher un input radio en cliquant sur une div
    Bonjour,

    j'aimerai pouvoir cocher un input type radio en cliquant sur la div qui le contient, j'ai ça en gros :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div id="conteneur">
       <div id="choix1">
          <input type="radio" name="choix" value="valeur1"/> Choix 1
        </div>
    <div id="choix2">
          <input type="radio" name="choix" value="valeur2"/> Choix 2
        </div>
    <div id="choix3">
          <input type="radio" name="choix" value="valeur3"/> Choix 3
        </div>
    </div>
    Je voudrais que quand on clique sur la div "choix2" cela check le radio button "choix" en "valeur2"

    Une idée ????

    Merci !


  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $( "div[id^='choix']" ).on( "click", function(){
        $( this ).children( "input" ).prop( "checked", true);
    });

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Autant utiliser une balise <label> qui est faite pour ça...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    merci, ta réponse fonctionne pour mon exemple, mais dans la pratique mon cas est plus compliqué et ta réponse ne colle pas car j'ai une div qui contient plusieurs div qui peuvent être cliquées, voici le code exact de mon cas :

    Code html : 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
      <div class="modesLivraison">
     
         <div class="modeLivraison" id="modeLivraison1">
          <div class="modeLivraisonRadio" id="modeLivraisonRadio1">
            <input type="radio" name="radioModeLivraison"/>
          </div>
          <div class="modeLivraisonImage" id="modeLivraisonImage1">
            <img src="140001349418731.png">
          </div>
          <div class="modeLivraisonDetail" id="modeLivraisonDetail1">
            <p class="modeLivraison-h1">UPS</p>
            <p class="modeLivraisonDetail-p">bla bla bla</p>
          </div>
          <div class="modeLivraisonPrix">
            5&euro;
          </div>
         </div>
    <br>
        <div class="modeLivraison" id="modeLivraison2">
          <div class="modeLivraisonRadio" id="modeLivraisonRadio2">
            <input type="radio" name="radioModeLivraison"/>
          </div>
          <div class="modeLivraisonImage" id="modeLivraisonImage2">
            <img src="0707140001349418731.png">
          </div>
          <div class="modeLivraisonDetail" id="modeLivraisonDetail2">
            <p class="modeLivraison-h1">SO COLISSIMO</p>
            <p class="modeLivraisonDetail-p">bla blabla bla</p>
          </div>
          <div class="modeLivraisonPrix" id="modeLivraisonPrix2">
            5&euro;
          </div>
         </div>
      </div>

    merci de votre aide en tout cas !

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il suffit de choisir les bonnes div...
    Celles ayant la classe modeLivraisonRadio conviennent parfaitement et en les changeant en balises <label avec un display: block;, tu n'as pas besoin de JavaScript.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Il suffit de choisir les bonnes div...
    Celles ayant la classe modeLivraisonRadio conviennent parfaitement et en les changeant en balises <label avec un display: block;, tu n'as pas besoin de JavaScript.
    je ne comprends pas trop ta réponse, je débute désolé ...

    Chaque mode de livraison est affiché sur une ligne et je veux que quand le visiteur clique n importe où sur la ligne cela check le radio correspondant, et non uniquement sur les clicks de la div modeLivraisonRadio ...

  7. #7
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    salut
    Peus tu donner un code plus propre avec des saut à la ligne.
    Car j'ai essailler de mettre ton code, c'est illisible
    Merci

  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
    Points : 9 944
    Points
    9 944
    Par défaut
    Je pense que c'est ça que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).ready(function(){
     
    $( ".modeLivraison" ).on( "click", function(){
        $( ".modeLivraison input:radio" ).prop( "checked", false);
        $( this ).find( "input:radio" ).prop( "checked", true);
    });
     
    });
    L'utilisation d'un label est effectivement plus standard, mais bon si le comportement attendu est un peu différent il faut passer par du JS, pas le choix.

  9. #9
    Membre régulier Avatar de royto
    Homme Profil pro
    Développeur .Net & Web
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .Net & Web

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Points : 96
    Points
    96
    Par défaut
    Une petite amélioration avec l'utilisation de siblings qui permet de récupérer les éléments frères qui sera plus performant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $( ".modeLivraison" ).on( "click", function(){
        $(this).find("input:radio")
            .prop("checked", true)
            //on récupère les éléments frères et on décoche 
            .siblings()
            .find("input:radio")
            .prop( "checked", false);
    });

Discussions similaires

  1. [VBA-E] afficher un ALERT en cliquant sur une case d'excel
    Par Argorate dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/08/2006, 06h02
  2. Réponses: 9
    Dernier message: 03/07/2006, 19h32
  3. deplacement Form en cliquant sur une image
    Par nemo69500 dans le forum C++Builder
    Réponses: 7
    Dernier message: 09/04/2006, 14h55
  4. Réponses: 6
    Dernier message: 27/05/2005, 16h43
  5. Comment trier une DBGRID en cliquant sur une colonne
    Par sessime dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/10/2004, 17h18

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