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 :

Bouton radio activant/desactivant checkbox - adaptation de la FAQ


Sujet :

JavaScript

  1. #1
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut Bouton radio activant/desactivant checkbox - adaptation de la FAQ
    Bonjour,

    Je dois avouer que je suis novice en javascript. C'est pourquoi je me suis rabattu sur la FAQ où j'ai trouvé à peu près mon bonheur...

    Dans la FAQ j'ai pris "Comment désactiver une zone de texte en cochant une checkBox ? ". En fait je veux trois boutons radio, dont l'activation du troisième activera d'autres checkbox. Ces checkbox devrons se désactiver si on active un des deux premières bouton radio.

    Et c'est la que se trouve le problème : une fois le troisième bouton radio activé les checkbox s'activent mais ne se désactivent plus si on sélectionne ensuite un des deux premier checkbox...

    Voici mon code un peu modifié :
    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
    <script language="JavaScript" type="text/javascript"><!--//
    function changement()
    {
       if (document.getElementById('er').checked)
          document.getElementById('coucou').disabled=true;
       else
          document.getElementById('coucou').disabled=false;
     
       if (document.getElementById('cb').checked)
          document.getElementById('coucou').disabled=false;
       else
          document.getElementById('coucou').disabled=true;
    }
    //--></script>
    </head>
     
    <body>
     
    <form method="post" action="formulaire.php?id=1#voir">
    <input type="radio" name="choix" id="er">
    <input type="radio" name="choix" id="er">
    <input type="radio" name="choix" id="cb" onclick="javascript:changement()" onclick="javascript:changement()">
    <input type="checkbox" id='coucou' disabled>
     
    <div class="submit">
    <input type="submit" value="Envoyer" name="submit">
    <input type="reset" value="Effacer" name="reset">
    <input type="submit" value="Previsualisation" name="previsual">
    </div>
    </form>

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Essaies ça :
    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
    <script language="JavaScript" type="text/javascript"><!--//
    function changement()
    {
       if (document.getElementById('cb').checked)
          document.getElementById('coucou').disabled=false;
       else
          document.getElementById('coucou').disabled=true;
    }
    //--></script>
    </head>
     
    <body>
     
    <form method="post" action="formulaire.php?id=1#voir">
    <input type="radio" name="choix" onclick="changement()"/>
    <input type="radio" name="choix" onclick="changement()"/>
    <input type="radio" name="choix" id="cb" onclick="changement()"/>
    <input type="checkbox" id='coucou' disabled/>
     
    <div class="submit">
    <input type="submit" value="Envoyer" name="submit"/>
    <input type="reset" value="Effacer" name="reset"/>
    <input type="submit" value="Previsualisation" name="previsual"/>
    </div>
    </form>

  3. #3
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Merci beaucoup, ça marche

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Oups, je suis allé un peu vite...

    En fait l'exemple donné fonctionne correctement mais j'avais oublié de dire (et de tester aussi) qu'il doit y avoir 3 boutons checkbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form method="post" action="formulaire.php?id=1#voir">
    <input type="radio" name="choix" onclick="changement()"/>
    <input type="radio" name="choix" onclick="changement()"/>
    <input type="radio" name="choix" id="cb" onclick="changement()"/>
    <input type="checkbox" id='coucou' disabled/>
    <input type="checkbox" id='coucou' disabled/>
    <input type="checkbox" id='coucou' disabled/>
     
    <div class="submit">
    <input type="submit" value="Envoyer" name="submit"/>
    <input type="reset" value="Effacer" name="reset"/>
    <input type="submit" value="Previsualisation" name="previsual"/>
    </div>
    </form>
    Le problème avec ce script c'est que seul le premier checkbox s'active ou se désactive... Merci de votre aide...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    En HTML, l'attribut "id" est unique. Une valeur de id ne doit être utilisée qu'une seule fois pour toute la page (Or ici, tu utilises 3 fois l'id "coucou").

    Remplace les id="coucou" par name="coucou", puis, au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('coucou').disabled=true;
    fais une boucle for en utilisant getElementsByName('coucou'), qui renverra un tableau de 3 éléments (tes trois inputs nommés "coucou").

  6. #6
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Désolé mais comme je disais je ne me suis pas encore plongé dans le javascript et je ne sais pas comment utiliser la boucle for (malgré la lecture du tutoriel sur l'introduction au javascript).

    Faut il laisser le if else, mettre un for à la place ???

    J'ai essayé de placer le for dans le if sans succès...

    Désolé pour toutes ces questions

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Ca doit ressembler à qq chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       if (document.getElementById('cb').checked)
       {
          var coucous = document.getElementsByName('coucou');
          for (var i=0 ; i<coucous.length ; i++)
             coucous[i].disabled=false;
       }
    Il faudra faire de même avec "disabled=true" dans le "else"

  8. #8
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Merci beaucoup ça marche, je ne m'en serais jamais sorti tout seul...

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

Discussions similaires

  1. Principe des boutons radios sur les checkbox
    Par misterphil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/10/2008, 16h34
  2. aligner texte et boutons radio /checkbox
    Par Tr@nkill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 19/04/2006, 13h23
  3. Valeur pour des checkbox et des boutons radio pour MySQL
    Par mounirha dans le forum Administration
    Réponses: 1
    Dernier message: 18/04/2006, 23h54
  4. comment activer/desactiver un bouton de controle
    Par OyyoDams dans le forum MFC
    Réponses: 17
    Dernier message: 09/04/2006, 11h15
  5. adapter l'entrée en fonction de boutons radio
    Par allowen dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/08/2005, 13h51

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