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 :

Mes boutons radio me retournes tous la même valeur (1)


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 86
    Points
    86
    Par défaut Mes boutons radio me retournes tous la même valeur (1)
    Bonjour,
    J'ai fait un sondage en php et il y a un block(partie discussion) du songade que je fais apparaitre selon l'option choisit dans 3 boutons radios :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<input type='radio' name='eligible' value='1' id='eligible' onchange='afficher_discussion()' /><strong>oui</strong> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo "<input type='radio' name='eligible' value='2' id='eligible' onchange='afficher_discussion()' /><strong>non</strong> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo "<input type='radio' name='eligible' value='3' id='eligible' onchange='afficher_discussion()' />peut-être";
    Dès qu'il y a un changement au niveau de ces boutons radio, j'aimerais afficher ou désactiver un block(discussion) du sondage.
    Donc si :
    eligible =1 (afficher)
    eligible =2 (ne pas afficher)
    eligible =3 (ne pas afficher)

    Voici ma fonction qui serait supposée afficher ou cacher mon block(discussion):
    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
    function afficher_discussion(){
     
    	var discussion = document.getElementById("discussion");
    	var obj = document.getElementById("eligible");
     
    	if (obj.value == 1){
    	discussion.style.display = "block";
    	alert("1");
    	}
    	if (obj.value == 2){
    	discussion.style.display = "none";
    	alert("2");
    	}
    	if (obj.value == 3){
    	discussion.style.display = "none";
    	alert("3");
    	}
     
    }
    Mon problème est que je récupères toujours la valeur 1...peu importe le bouton radio sélectionné. Donc mon block ne fait que s'afficher mais il ne se cache jamais..

    Quelqu'un à une idée !?

    Merci !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    il faut donner des id différents et utiliser la propriété .checked

    exemple : if (document.getElementById('id1').checked)

  3. #3
    Membre régulier Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Merci, je ne pensait pas que les boutons radio fonctionnait avec .checked.

    Le seul problème que j'ai maintenant c'est tout fonctionne bien sauf que après avoir sélectionné 1 des trois boutons radio, je dois recliquer n'importe ou dans la page pour que mon script embarque.

    Qu'est-ce qui manque? quelque chose dans ma fonction ou c'Est mon ''onchange'' qui n'est pas adéquat ?

    voici ma fonction 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
    function afficher_discussion(){
     
    	var discussion = document.getElementById("discussion");
     
    	if (document.getElementById('eligible1').checked){
    	discussion.style.display = "block";
    	}
    	if (document.getElementById('eligible2').checked){
    	discussion.style.display = "none";
    	}
    	if (document.getElementById('eligible3').checked){
    	discussion.style.display = "none";
    	}
    }
    Merci !

  4. #4
    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,
    Citation Envoyé par stem Voir le message
    il faut donner des id différents et utiliser la propriété .checked

    exemple : if (document.getElementById('id1').checked)
    Exact, chaque ID doit être unique (et non, ce n'est pas négociable )
    Dans ton cas, par contre, le name est bien pratique.
    En enlevant (ou en changeant) les id, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var obj = document.getElementsByName("eligible"); // Retourne un tableau d'elements
    for (i=0; i<obj.length; i++) {
     discussion.style.display = (obj[i].checked)?"block":"none";
     alert(obj[i].value);
    }
    A+

  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
    Citation Envoyé par MikeV Voir le message
    Le seul problème que j'ai maintenant c'est tout fonctionne bien sauf que après avoir sélectionné 1 des trois boutons radio, je dois recliquer n'importe ou dans la page pour que mon script embarque.
    Pour certains nav, le "changement" n'est considéré comme effectif qu'à la sortie du champ.

    A+

  6. #6
    Membre régulier Avatar de MikeV
    Profil pro
    Webmaster
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Pour certains nav, le "changement" n'est considéré comme effectif qu'à la sortie du champ.

    A+
    Certains nav...disons...Internet Explorer (jamais je n'aurais pensé pouvoir détester autant un navigateur des fois je pense qu'il est contre moi..ou je suis peut être juste débile!)

    Merci pour tout !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Points : 56
    Points
    56
    Par défaut
    Utilise OnClick plutot que OnChange.

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

Discussions similaires

  1. tous mes boutons radio checked
    Par zugolin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2010, 12h42
  2. mes boutons radio ne sont pas vérifiés
    Par seblille59 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/12/2008, 20h44
  3. getSelectedItem me retourne toujours la même valeur
    Par une_tite_question dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/06/2008, 13h49
  4. un truc qui cloche dans mes boutons radio
    Par zugolin dans le forum Langage
    Réponses: 5
    Dernier message: 26/02/2008, 17h30
  5. Réponses: 3
    Dernier message: 09/06/2006, 06h10

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