2010-10-06 5 views
0

Je souhaite sélectionner un bouton radio depuis javascript. J'utilise ce fichier html simple pour tester le problème. Le code ci-dessous fonctionne correctement sur Firefox et Chrome, mais il ne fonctionne pas dans IE (aucune version fonctionne). Je voudrais savoir pourquoi le code fourni ne fonctionne pas sur IE, et comment sélectionner un bouton radio dans IE?La sélection dynamique d'un bouton radio html via javascript ne fonctionne pas dans IE

<html> 
<head> 
    <script type="text/javascript"> 
     function chooseOne() 
     { 
      var randomChoice = Math.round(Math.random() * 2); 

      if(randomChoice == 0) 
      { 
       document.getElementById("test0").checked = true; 
      } 
      else if (randomChoice == 1) 
      { 
       document.getElementById("test1").checked = true; 
      } 
      else 
      { 
       document.getElementById("test2").checked = true; 
      } 
     } 
    </script> 
</head> 
<body> 
    <input type="radio" id="test0" name="test" value="a" /> A<br /> 
    <input type="radio" id="test1" name="test" value="b" /> B<br /> 
    <input type="radio" id="test2" name="test" value="c" /> C<br /> 
    <input type="button" name="click" value="CHOOSE" onclick="javascript:chooseOne()" /> 
</body> 

Merci à l'avance, Spi

Répondre

2

Tout d'abord, vous devez donner à tous vos boutons radio le même name, sinon ils agiront comme s'ils sont des boutons indépendants:

<input type="radio" name="test" id="test0" value="a" /> A<br /> 
<input type="radio" name="test" id="test1" value="b" /> B<br /> 
<input type="radio" name="test" id="test2" value="c" /> C<br /> 

Je suppose que c'est aussi la source de votre problème. De plus, une fois que vous faites ceci, vous devez seulement placer checked d'un bouton d'option à true, qui enlèvera automatiquement la sélection d'autres boutons.

+0

J'ai fait votre changement et en fait, je n'ai pas besoin de mettre les autres boutons radio à checked = false. Cependant, rien ne se passe encore dans IE. –

+0

Cela fonctionne pour moi sur IE6. Quel est exactement le problème que vous rencontrez? – casablanca

+0

J'essaie sur IE 8 et IE 7, quand j'appuie sur le bouton, rien ne se passe, aucun bouton radio est sélectionné, tandis que sur Firefox et Chrome un bouton radio aléatoire est sélectionné chaque fois que j'appuie sur le bouton –

0

Je ne suis pas certain, mais peut-être que vous avez à dire IE que votre code onclick est en javascript comme ceci:

<input type="button" name="click" value="CHOOSE" onclick="javascript:chooseOne()" /> 
+0

J'ai essayé votre suggestion, mais toujours sans succès. –

+1

Faites également attention à l'utilisation de 'Math.round (Math.random() * 2);'. En raison de l'arrondissement, cela génère 0 et 2 avec une chance de 25% chacun, et 1 avec une chance de 50%. Pour obtenir 0, 1 et 2 avec une chance égale, utilisez: 'Math.floor (Math.random() * 3);' – Gus

+0

Oui, vous avez raison. Cependant dans mon cas ce n'est pas un problème puisque je l'utilise juste pour tester la sélection des boutons radio. –

0

Un problème: var randomChoice = Math.round(Math.random() * 2);

aura toujours céder à 1

Questions connexes