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 :

desactiver un menu deroulant si le radio bouton n'est pas actif


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut desactiver un menu deroulant si le radio bouton n'est pas actif
    Bonjour,
    je ne sais pas si on peut trouver une solution a mon probleme via HTML ou si c'est plutot de l'ordre d'un javascript, mais bon sur ce coup, je fais appel a l'equipe.

    Voici mon probleme. J'ai un formulaire demandant si le visiteur veux payer a) en une fois b) en plusieurs fois en prenant sur son compte tous les [table deroulante avec les dates]

    Je voudrais que ma table deroulante ne soit pas accessible tant que le radio bouton (b) n'a pas ete active.

    Voila. J'espere avoir de bonne nouvelle bientot car cela fait plusieurs jours que je cherche sans succes.

    D'avance un tout grand merci pour votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    au chargement de ton formulaire, il faut griser ta table déroulante par javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="liste" name="date" disabled="disabled">
    ensuite il faut modifier cet état à chaque changement d'état de ton bouton radio "b" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="radio" id="b" name="b"
    onChange="if(document.getElementById('liste').disabled == true) document.getElementById('liste').disabled = false;else document.getElementById('liste').disabled = true;">
    ou autre possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" id="b" name="b" onChange="activList();">
    et donc dans le <head> il faut ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    function activList(){
    if(document.getElementById('liste').disabled == true) document.getElementById('liste').disabled = false;
    else document.getElementById('liste').disabled = true;
    }
    </script>

    et voilà !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour ta reponse.

    J'ai malheureusement un probleme et je ne sais pas ce que je fais de travers. En effet lorsque je selectionne mon bouton (b) cela n'active pas le menu deroulant. Il faut que j'active le bouton (a) pour que cela commence a fonctionner. J'ai utilise ta seconde proposition avec le code javascript dansle header. Voici mon code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <input type="radio" name="customer_Donation" onchange="activList();"value="One Time Donation" checked>
    					I would like to make a one Time Donation</font></p>
    <p align="left">
    <font face="Verdana">
    <input type="radio" name="customer_Donation" onchange="activList();" value="Monthly Donation" />
    I would like to become a monthly partner, please charge my &nbsp;account on the 
    <select id="liste" name="customer_Date" size="1" style="background-color:rgb(226,237,235);" disabled="disabled">
                            <option>Day of the month</option>
                            <option value="1">1</option>
                            <option value="2">2</option>
    Encore merci pour ton aide

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    essaye en remplacant le onChange par onFocus...

    teste aussi de modifier la fonction activList par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function activList(){
    if(document.getElementById('customer_Donation')[1].checked == true) document.getElementById('liste').disabled = false;
    else document.getElementById('liste').disabled = true;
    }
    c'est bizarre que tu soies obligé d'activer d'abord le "a"... en même temps je t'ai pondu ça vite fait donc c'est possible qu'il y ait une erreur, et puisca reste du détail le fait d'activer préalablement "a" ou non !

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('customer_Donation')[1].
    getElementById() ne retourne jamais un tableau.

    Pour la bonne raison qu'un id doit être unique.
    Dans le cas des radio, le name sera bien commun (ici name="b"), mais l'id, non (=> id="b1" id="b2" etc).
    Si tu numérotes tes radio de b0 à b2 et que b1 est celui visé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('b1').checked) ....
    Cette erreur suffit à bloquer tout le reste du code

    Par ailleurs, les évènements s'écrivent toujours entièrement en minuscules (onchange et non onChange)

    A+

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    oui justement, mon getElementById('...')[1] me turlupiner... je venais justement rectifier ma grossière erreur...

    quel est mon châtiement Mr le Modérateur ??? (mdr)

    bon, par contre pour les évènements je découvre... pour moi ce n'était qu'une vague question philosophique et je n'ai d'ailleurs jamais rencontré de soucis à ce propos... mais je veux bien te croire...

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par jeje13009 Voir le message
    quel est mon châtiement Mr le Modérateur ??? (mdr)


    Résoudre le problème de floppy__ ?


  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Un grand merci a tous les deux.
    Cela fonctionne maintenant parfaitement, en fait j'avais encore une petit probleme d'ordre graphique (le grise d'inactivite du menu deroulant ne s'affichait pas immediatement) j'ai donc remplace le "onchange" par "onclick".

    Encore un tout grand merci

    PS: sorry pour le manque d'accent de mes messages, mais je suis aux USA et leurs claviers ne sont pas habitues a la langue de moliere.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par E.Bzz Voir le message


    Résoudre le problème de floppy__ ?

    bon beh je crois que c'est fait alors

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

Discussions similaires

  1. [Débutant] Radio bouton n'affiche pas sa valeur à l'impression
    Par GoldKnight dans le forum Développement Windows
    Réponses: 3
    Dernier message: 01/02/2015, 08h09
  2. Réponses: 5
    Dernier message: 21/07/2012, 08h30
  3. Réponses: 0
    Dernier message: 28/11/2011, 14h41
  4. Menu deroulant en fonction d'un bouton radio
    Par lousa005 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/06/2011, 17h03
  5. Réponses: 2
    Dernier message: 05/01/2009, 10h29

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