[Résolu]Récupérer la valeur d'un radiobutton

Récupérer la valeur d'un radiobutton [Résolu] - HTML/CSS - Programmation

Marsh Posté le 25-01-2006 à 11:07:18    

Voilà, je me casse la tête sur un problème depuis 2h, c'est récupérer la valeur d'un radio button pour pouvoir afficher ou non une zone dans la page html. Je voudrais juste afficher la zone quand le 1er bouton et coché et ne pas l'afficher ou ne plus l'afficher quand c'est les autres, il y a 3 boutons en tout.
 
ma fonction :
 
 function affcarte()
 {
  for (zi=0;zi<carte_coche.length;zi++)
  {
   if (carte_coche[zi].checked==true)
   {
    if (carte_coche[zi].value=="0" )
    {
     document.getElementById("zonecarte" ).style.display="block";
     document.getElementById("zonetablo" ).style.display="block";
    }
    else
    {
     document.getElementById("zonecarte" ).style.display="none";
     document.getElementById("zonetablo" ).style.display="none";
    }
   }
  }
 }
 
 
Récupération du bouton :
 
 var carte_coche = document.getElementById("confirme" );
 carte_coche.onclick = affcarte;
 
Un exemple de mes boutons :
 
 <li><input type=\"radio\" id=\"confirme\" name=\"confirme\" value=\"0\" />$LANG_carte</li>
 
 
Merci beaucoup de votre aide !


Message édité par swoosh2002 le 25-01-2006 à 14:16:22
Reply

Marsh Posté le 25-01-2006 à 11:07:18   

Reply

Marsh Posté le 25-01-2006 à 11:32:09    

SI ca peut en aider certains dans la resolution du probleme, on me dit que "carte_coche has no proprieties"...

Reply

Marsh Posté le 25-01-2006 à 11:57:29    

Ca vient d'où "carte_coche" et ca contient quoi "carte_coche"?
En gros, tu le remplis comment?

Reply

Marsh Posté le 25-01-2006 à 12:15:00    

carte_coche c'est un get element by id de "confirme" je l'ai marké

Reply

Marsh Posté le 25-01-2006 à 12:52:23    

un id est unique, et getElementById retourne tout logiquement un seul élément. Si t'as deux éléments qui ont le même id, alors c'est que t'as une grosse erreur dans ta page et rien ne permet de deviner quel élément sera retourné par getElementById si plusieurs ont le même "id". En tout cas, il ne te retournera jamais un tableau d'élément.
 
carte_coche ne peux donc pas être un tableau, c'est donc normal que ca merde quand tu le traites comme un tableau.
 
Utilise donc "getElementsByName" si tu veux un tableau des éléments dont le nom est untel.
 
PS : Si j'ai pas vu que t'avais mis ton initialisation à la fin du message, c'est par ce que d'habitude on indique l'initilisation en premier et que comme tu n'as pas utilisé la balise [code] du forum, je n'ai pas vu que t'avais mis dans ton message du code suivit d'explications suivit de code suivit d'explications ...
 
EDIT : PS2 : Et si tu mettais le code html de l'élément tel que reçu par le navigateur plustôt qu'un bout de code mélangeant du php et dans lequel on ne voit pas comment t'as commencé ton texte? Ca permettrait de voir s'il ne traine pas de caractére bidon là où il ne faut pas.


Message édité par omega2 le 25-01-2006 à 12:54:50
Reply

Marsh Posté le 25-01-2006 à 13:31:15    

Merci pour le conseil et excuse moi pour la mise en page du code, j'ai pas l'habitude de trop poster sur ce forum... par contre j'ai changé ma méthode mais il y a toujours un probleme, quand je suis sous ie je peux cocher tous les boutons (et les autres ne se décochent pas), et sous firefox, une fois que j'en ai coché un, je ne peux plus cocher les autres.
 
Mon code :
 
<input type=\"radio\" id=\"confirme1\" name=\"confirme1\" value=\"0\" onclick=\"affcarte()\" />
 
var c1 = document.getElementById("confirme1" );
 
 function affcarte()
 {
  if (c1.checked==true)
  {
  c2.checked=false;
  c3.checked=false;
  document.getElementById("zonecarte" ).style.display="block";
  document.getElementById("zonetablo" ).style.display="block";
  }
  if (c2.checked==true)
  {
  c1.checked=false;
  c3.checked=false;
  document.getElementById("zonecarte" ).style.display="none";
  document.getElementById("zonetablo" ).style.display="none";
  }
  if (c3.checked==true)
  {
  c1.checked=false;
  c2.checked=false;
  document.getElementById("zonecarte" ).style.display="none";
  document.getElementById("zonetablo" ).style.display="none";
  }
 }
 
 
Comme précédemment j'ai pas mi toutes les valeurs parceque c'est trop long a selectionner a cause des balises php et des autres fonctions, c'est juste pour te montrer comment j'ai fait. J'ai utilisé des id et des names différents pour chaque bouton.
 
Merci !  :hello:


Message édité par swoosh2002 le 25-01-2006 à 13:32:10
Reply

Marsh Posté le 25-01-2006 à 14:16:07    

C'est bon j'ai trouvé, en fait il ne fallait pas mettre les "=false" car il le fait de base comme ils ont le meme Name, c'est ca qui fesait tout foirer...
 
merci beaucoup quand meme !
 
 
le code corrigé :
 
 
 
 
function affcarte()  
 {  
  if (c1.checked==true)  
  {  
  document.getElementById("zonecarte" ).style.display="block";  
  document.getElementById("zonetablo" ).style.display="block";  
  }  
  if (c2.checked==true)  
  {  
  document.getElementById("zonecarte" ).style.display="none";  
  document.getElementById("zonetablo" ).style.display="none";  
  }  
  if (c3.checked==true)  
  {  
  document.getElementById("zonecarte" ).style.display="none";  
  document.getElementById("zonetablo" ).style.display="none";  
  }  
 }  

Reply

Marsh Posté le 25-01-2006 à 14:23:18    

tu aimes te compliquer la vie hein ?
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4.     <title></title>
  5.     <script type="text/javascript">
  6.     function affcarte(checkbox){
  7.         if (checkbox.checked==true && checkbox.id=="confirme1" ) {
  8.             document.getElementById("zonecarte" ).style.display = "block";
  9.             document.getElementById("zonetablo" ).style.display = "block";
  10.         }
  11.         else {
  12.             document.getElementById("zonecarte" ).style.display = "none";
  13.             document.getElementById("zonetablo" ).style.display = "none";    
  14.         }
  15.     }
  16.     </script>
  17. </head>
  18. <body>
  19. <input type="radio" name="confirme" id="confirme1" value="1" onclick="affcarte(this)"><label for="confirme1">Ta mere</label>
  20. <input type="radio" name="confirme" id="confirme2" value="2" onclick="affcarte(this)"><label for="confirme2">Ton mere</label>
  21. <input type="radio" name="confirme" id="confirme3" value="3" onclick="affcarte(this)"><label for="confirme3">Tes freres et tes soeurs</label>
  22. <div id="zonecarte">Zone carte</div>
  23. <div id="zonetablo">Zone tablo</div>
  24. </body>
  25. </html>

Reply

Marsh Posté le 25-01-2006 à 14:26:03    

eet on va faire simple sur le fonctionnement des boutons radio :  
Si les boutons radio on le même nom (Name)
alors il n'y aura qu'un seul bouton radio de sélectionné à la fois.
s'il n'ont pas le meme noms, alors ils sont différents.
 
si tu veux faire un système de choix ou on peut faire plusieurs choix comme :  
cocher le 1 et cocher le 2
alors il faut utiliser les checkbox,  
 
parce que par convention :
checkbox = choix multiples
radio = choix unique

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed