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 :

Déselectionner un radio button.


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut Déselectionner un radio button.
    Environnement ASP.NEt
    Browser IE


    Bonjour,

    J'éssai d'ajouter le comportement de deselction sur le radio button.

    Voici mon code

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    script type="text/javascript" language="javascript">
    function clear_radio_button(radioButton) 
    {
       radioButton.checked=!radioButton.checked;
     }
    }
    </script>

    Ce code ne marche pas avec l'event on click parce que la RB change d'état avant le déclenchement de l'event.

    J'ai essayé aussi l'event onmousepress, mais le code serveur encapsule la RB dans un span

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span onmousepress="clear_radio_button(this);"><input id="ctl00_cphCenter_gdvAllFormations_ctl02_rdbGarder" type="radio" name="Garder" value="ctl00$cphCenter$gdvAllFormations$ctl02$rdbGarder" onclick="" /></span>

    Si quelqu'un a une idée comment faire !!

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    onmouseup ?

    ou alors setTimeout ...

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    j'ai essayé ceci et cela a l'air de fonctionner :-)

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript">
    function verifEtat(maRadio,etat){
    	maRadio.checked = (!maRadio.checked) ? true:false;
    }
    </script>
    </head>
    <BODY>
    <input type="radio" name="test" id="toto" onmouseup="verifEtat(this)" />
    </BODY>
    </html>
    J'ai essayé plusieurs évènement, et la checkbox est coché sur l'évènement "onmouseup"...

    Bon courage

  4. #4
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Merci pour les réponses.

    En fait comme onmousepress, quand j'ajoute l'event onmouseup, mon control serveur me génére ce code :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span onmouseup="clear_radio_button(this);"><input id="ctl00_cphCenter_gdvAllFormations_ctl02_rdbGarder" type="radio" name="Garder" value="ctl00$cphCenter$gdvAllFormations$ctl02$rdbGarder" onclick="" /></span>

    Sinon j'ai essayé avec une simple page html et ça marche une fois sur 3, ça dépend où et comment je clique sur le bouton .

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    donc essaye de colle un setTimeout sur le onmouseup ...

    onmousepress n'est pas crossbrowser ..

  6. #6
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    donc essaye de colle un setTimeout sur le onmouseup ...

    onmousepress n'est pas crossbrowser ..
    Merci.

    Juste une derniere question pour tester ta solution. Existe-t-il un moyen de récuperer les controls childs en js, parce que comme tu vois le onmouseup se place automatiquement dans un span et l'id du radio button est générique.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    id générique ?
    pas compris ...
    tu peux mettre un peu de code html pour expliciter ...

    et le onmousup sur le span ?

    montre ta structure stp

  8. #8
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    spacefrog : en .net , les id des controles sont généré dynamiquement par le serveur , il ne peut donc pas travailler avec l'id

    Edit : j'ai dit une connerie ... les id sont bel et bien généré dynamique et il peut récupèrer l'id gènéré via une propriété de dotnet a intègrer dans son js genre :

    moncontrol.id

    qui sera généré lors de la génération de la page ...

  9. #9
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    id générique ?
    pas compris ...
    tu peux mettre un peu de code html pour expliciter ...

    et le onmousup sur le span ?

    montre ta structure stp
    Oui, voila le code généré (c'est le même que celui de mon avant dernier post):

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span onmouseup="clear_radio_button(this);"><input id="ctl00_cphCenter_gdvAllFormations_ctl02_rdbGarder" type="radio" name="Garder" value="ctl00$cphCenter$gdvAllFormations$ctl02$rdbGarder" onclick="" /></span>

    Comme tu vois, mon control serveur génére un span parce que le control en question ne gère pas le onmouseup. En fait c'est un control utilisateur (qui étend la fonctionnalité de base du radio button) donc je n'ai pas la main sur le rendu html qu'il génére.

    Sinon, je pourrais récuperer l'id du control et construire l'appel à la fonction javascript avec du code C# coté serveur, mais je voudrais éviter pour l'instant je préfére une solution en pure js.

    Encore

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tu n'as qu'un input par span ?

    avec l'id du span l'input contenu est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('idduspan').getElementsByTagName('input')[0]

  11. #11
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Bon, je galere encore avec mon radio button.

    voila où est ce que j'en suis.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <span onmouseup="setTimeout('clear_radio_button(\'ctl00_cphCenter_gdvAllFormations_ctl02_rdbGarder\')',0);"><input id="ctl00_cphCenter_gdvAllFormations_ctl02_rdbGarder" type="radio" name="Garder" value="ctl00$cphCenter$gdvAllFormations$ctl02$rdbGarder" onclick="" /></span>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function clear_radio_button(radioButton) 
    {
     var obj=document.getElementById(radioButton);
     obj.checked=!obj.checked;
    }

    ça marche bien lorsque mon radio button est selectionné mais il faut cliqué deux fois de suite lorsqu'il est déselectionné.

    Et complétement l'inverse si je transforme mon onmouseup par onmousedown.

    Je ne vois pas du tout ce qui se passe.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    pas 0 dasn le setTimeout ... 200 voire 500 !

  13. #13
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    pas 0 dasn le setTimeout ... 200 voire 500 !
    J'ai déjà essayé, la RB se désélectionne toute seule.

Discussions similaires

  1. radio button
    Par Smash34 dans le forum Langage
    Réponses: 1
    Dernier message: 23/02/2006, 10h47
  2. Réponses: 3
    Dernier message: 16/12/2005, 15h35
  3. [débutante] Radio button
    Par monia dans le forum MFC
    Réponses: 1
    Dernier message: 01/07/2005, 10h15
  4. [JTree] Label + Textfield, Radio buttons, ..
    Par leup dans le forum Composants
    Réponses: 2
    Dernier message: 31/01/2005, 09h40
  5. value de radio button indéfinie (undefined)
    Par noinneh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/12/2004, 12h25

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