afficher des champs selon le choix du bouton radio

afficher des champs selon le choix du bouton radio - HTML/CSS - Programmation

Marsh Posté le 20-03-2006 à 12:53:47    

Bonjour,
 
je voudrais afficher des champs selon le choix du bouton radio, j'ai trouvé cette fonction sur le net:
 
<HTML>
<HEAD>
<TITLE></TITLE>

<script type="text/javascript">
function met(btn,champ)
{
 if (btn.checked)
   {
    document.getElementById(champ).style.display="inline";
   }
 else {
    document.getElementById(champ).style.display="none";
   }
}
</script>

</HEAD>
<BODY>
 
<input type="radio" name="tem" value="oui" id="chkb_10"
  onclick="met(this,'texte_10');" >&nbsp;<label for="chkb_10">Contrôle de "texte_10"</label>
<input type="text"
  style="display:none"
  id="texte_10" value="Contenu de texte_10"><br />
 
<input type="radio" id="chkb_20" value="non" name="tem"
  onclick="met(this,'texte_20');" >&nbsp;<label for="chkb_20">Contrôle de "texte_20"</label>
<input type="text"
  style="display:none"
  id="texte_20" value="Contenu de texte_20"><br />
 
</BODY>
</HTML>

 
Le probléme c'est que quand je change de bouton, le texte reste afficher, qu'est ce que je dois rajouter pour que ça marche??
 
merci d'avance pour votre aide.

Reply

Marsh Posté le 20-03-2006 à 12:53:47   

Reply

Marsh Posté le 20-03-2006 à 13:05:11    

il me semble que tu utilises mal les bouton radio : ok, tu leur donne le meme nom, mais ils doivent avoir le meme id, et des "value" differentes, tu dois les differencier grace a ça...

Reply

Marsh Posté le 20-03-2006 à 13:14:15    

C'est ton algo qu'est foireux...
Ok quand on coche un case tu affiches le texte, mais quand on coche une autre case tu n'enleves pas l'affichage des autres textes...
Il faut donc qu'a chaque click tu regardes quels sont les inputs a display inline et que tu les mettes en display none!

Reply

Marsh Posté le 20-03-2006 à 13:52:40    

anapajari a écrit :

C'est ton algo qu'est foireux...
Ok quand on coche un case tu affiches le texte, mais quand on coche une autre case tu n'enleves pas l'affichage des autres textes...
Il faut donc qu'a chaque click tu regardes quels sont les inputs a display inline et que tu les mettes en display none!


 
oui, mais comment je fais pour différencier les deux boutons radio, puisqu'ils ont le méme nom!!
merci

Reply

Marsh Posté le 20-03-2006 à 13:57:47    

regarde la valeur de celui qui est coché [:spamafote]

Reply

Marsh Posté le 20-03-2006 à 13:59:42    

c'est bon j'ai trouvé, voici le code:
 
<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
function met(btn,champ1,champ2)
{
 if (btn.checked)
   {
    document.getElementById(champ1).style.display="inline";
 document.getElementById(champ2).style.display="none";
   }
 else {
    document.getElementById(champ1).style.display="none";
 document.getElementById(champ2).style.display="display";
   }
}
</script>
</HEAD>
<BODY>
 
<input type="radio" name="tem" value="oui" id="chkb_10"
  onclick="met(this,'texte_10','texte_20');" >&nbsp;<label for="chkb_10">Contrôle de "texte_10"</label>
<input type="text"
  style="display:none"
  id="texte_10" value="Contenu de texte_10"><br />
 
<input type="radio" id="chkb_20" value="non" name="tem"
  onclick="met(this,'texte_20','texte_10');" >&nbsp;<label for="chkb_20">Contrôle de "texte_20"</label>
<input type="text"
  style="display:none"
  id="texte_20" value="Contenu de texte_20"><br />
 
</BODY>
</HTML>

Reply

Sujets relatifs:

Leave a Replay

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