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 :

[DOM] tout cocher (sélectionner ) avec les boutons RADIO


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Par défaut [DOM] tout cocher (sélectionner ) avec les boutons RADIO
    Bonjour,
    Vous avez sûrement vue le code du tout cocher avec les checkboxs,
    Le miens c'est un tout sélectionner avec les boutons radio.
    Le problème c'est que çà marche sous FireFox mais pas sur le grand IE
    Donc je demende si quelqu'un peut m'aider c'est super.
    Voici le source:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>FF vs IE</title>
        <script>
        function select_tout_radio( type )
        {
            var balises = document.getElementsByTagName("input");
     
            switch (type)
            {
              case '0':
     
                for (i in balises) {
                if (balises[i].type == "radio" && balises[i].value == "rien") {
                balises[i].checked = true;
                }
                }
               break;
     
              case '1':
                 for (i in balises) {
                if (balises[i].type == "radio" && balises[i].value == "valider") {
                balises[i].checked = true;
                }
                }
                break;
              case '2':
                 for (i in balises) {
                if (balises[i].type == "radio" && balises[i].value == "refuser") {
                balises[i].checked = true;
                }
                }
                break;
     
              default:
               break;
            }   
        }   
        </script>
    </head>
     
    <body class="cadre_vert" style="padding:10px; ">
    <form method="post" name="formulaire2" action="jsFFIE.php">
     
    <table border="0" cellspacing="2">
    <tr>
    <td align="center"><b>Bouton Maitre</b></td>
    </tr>
    <tr>
    <td align="left">
        <input type="radio" name="principale" value="tv" onclick="select_tout_radio('1')"> Tout Valider
        <input type="radio" name="principale" value="tr" onclick="select_tout_radio('2')"> Tout Refuser
        <input type="radio" name="principale" value="rf" onclick="select_tout_radio('0')"> Ne rien faire pour tous
    </td>
    </tr>
    <tr><td ><hr size="1" color="#ffffff" width="100%"></td></tr>
    <tr>
    <td align="center"><b>Bouton Esclave</b></td>
    </tr>
     
    <?php
    for( $i=0;$i<=10;$i++)
    {
        ?>
        <tr>
        <td>
        <input type="hidden" name="tableau[]" value="<?=$i?>">
        <input type="radio" name="valider_<?=$i?>" id="valide" value="valider"> Valider
        <input type="radio" name="valider_<?=$i?>" id="refuse" value="refuser"> Refuser
        <input type="radio" name="valider_<?=$i?>" id="rien" value="rien"> Ne rien faire
        </td>
        </tr>
        <?php
    }
    ?>
     
    </table>
    </form>
    </body>
    </html>
    Et merci d'avance

  2. #2
    Expert éminent

    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
    Par défaut
    Bonjour,
    le principe des boutons radio, du fait qu'ils ont le même name, est justement de ne pouvoir en sélectionner qu'un seul.
    Sinon, il est (largement) préférable d'utiliser des checkbox.

    Et puis est-ce satisfaisant de pouvoir à la fois "Valider", "Annuler" et ne "Rien" faire ?

    Il y a peut-être une précision que tu as oubliée dans tes explications

    A+

  3. #3
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Par défaut
    Bonjour E.Bzz,

    le contexte c'est que pour chaque ligne Esclave , on pourrait choisir soit "Valide", soit "refuser",soit "Ne rien faire". donc c'est le bouton radion qui est idéale mais pas les boutons checkbox,

    les boutons Maîtres sont fait soit pour séléctionner tout les "valider" soit tout les "refuser" .... ( supposons qu'on a 1000 ligne à faire valider ou refuser )

    Le problème avec ce code c'est que çà marche sur Fire Fox mais pas sur Internet Explorer.

    C'est sûrement au niveau du support du DOM.

    Mais je ne sais pas comment y remedier


  4. #4
    Expert éminent

    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
    Par défaut
    Citation Envoyé par jabs
    les boutons Maîtres sont fait soit pour séléctionner tout les "valider" soit tout les "refuser" .... ( supposons qu'on a 1000 ligne à faire valider ou refuser )
    Ah ok : tu as plusieurs groupe avec name="valider_<?=$i?>" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0; i<le_nombre_de_groupe_différents; i++) {
    NameDuGroupe="valider_"+i;
    CeGroupe = document.getElementsByName(NameDuGroupe);
    for (j=0; j<CeGroupe.length; j++)
    CeGroupe[j].checked = (CeGroupe[j].value=="Valider");
    }
    Comme ça ?

    A+

  5. #5
    Membre habitué
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Par défaut
    Oui E.Bzz.

    Quelque chose du genre comme ton code,
    essayez de remplacer le contenu de la fonction select_tout_radio()
    avec çà :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function select_tout_radio( type )
    	{
    		/*
    		var balises = document.getElementsByTagName("input");
     
    		switch (type)
    		{
    		  case '0':
     
    		    for (i in balises) {
    		    if (balises[i].type == "radio" && balises[i].value == "rien") {
    			balises[i].checked = true;
    			}
    			}
    		   break;
     
    		  case '1':
    		     for (i in balises) {
    			if (balises[i].type == "radio" && balises[i].value == "valider") {
    			balises[i].checked = true;
    			}
    			}
    		    break;
    		  case '2':
    		     for (i in balises) {
    			if (balises[i].type == "radio" && balises[i].value == "refuser") {
    			balises[i].checked = true;
    			}
    			}
    		    break;
     
    		  default:
    		   break;
    		}	*/
    		for (i=0; i<=10; i++) 
    		{ 
     
    			CeGroupe = document.getElementsByName("valider_"+i); 
    			alert(CeGroupe);
    			for (j=0; j<CeGroupe.length; j++) 
    			{
    				if (CeGroupe[j].value=="Valider") CeGroupe[j].checked = true; 
    			}
    		}
    	}
    et tu verras déjà la difference de ce que ça renvoye sur FireFox et su IE


  6. #6
    Expert éminent

    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
    Par défaut
    Citation Envoyé par jabs
    Quelque chose du genre comme ton code,
    Comment "du genre" ?
    Ca marche ou pas ?

    essayez de remplacer le contenu de la fonction select_tout_radio()
    avec çà :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function select_tout_radio( type )
    	{
    		/*
    		var balises = document.getElementsByTagName("input");
     
    		switch (type)
    		{
    		  case '0':
     
    		    for (i in balises) {
    		    if (balises[i].type == "radio" && balises[i].value == "rien") {
    			balises[i].checked = true;
    			}
    			}
    		   break;
     
    		  case '1':
    		     for (i in balises) {
    			if (balises[i].type == "radio" && balises[i].value == "valider") {
    			balises[i].checked = true;
    			}
    			}
    		    break;
    		  case '2':
    		     for (i in balises) {
    			if (balises[i].type == "radio" && balises[i].value == "refuser") {
    			balises[i].checked = true;
    			}
    			}
    		    break;
     
    		  default:
    		   break;
    		}	*/
    		for (i=0; i<=10; i++) 
    		{ 
     
    			CeGroupe = document.getElementsByName("valider_"+i); 
    			alert(CeGroupe);
    			for (j=0; j<CeGroupe.length; j++) 
    			{
    				if (CeGroupe[j].value=="Valider") CeGroupe[j].checked = true; 
    			}
    		}
    	}
    et tu verras déjà la difference de ce que ça renvoye sur FireFox et su IE
    Heu ... pas bien le temps, là

    ... pour les balses [ CODE], c'est le bouton # de l'éditeur de messages

    A+

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

Discussions similaires

  1. Quick Test Pro: pb avec les boutons radio
    Par odelinne dans le forum Test
    Réponses: 3
    Dernier message: 30/05/2007, 10h07
  2. comment cocher/décocher checkbox avec un bouton radio
    Par faucon54 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/05/2007, 17h26
  3. Réponses: 1
    Dernier message: 29/09/2006, 12h00
  4. Probleme avec les boutons radio
    Par aproust dans le forum Linux
    Réponses: 3
    Dernier message: 11/05/2006, 08h05
  5. Prob avec les boutons radio
    Par King_T dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2006, 00h44

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