2010-10-06 49 views
0

我想從javascript中選擇一個單選按鈕。我正在使用這個簡單的html文件來測試這個問題。下面的代碼可以在Firefox和Chrome上正常工作,但是它在IE中不起作用(沒有版本的作品)。我想知道爲什麼提供的代碼不能在IE上工作,以及如何選擇IE中的單選按鈕?通過javascript動態選擇html單選按鈕在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> 

由於事先 靈寶

回答

2

首先,你應該給你所有的單選按鈕相同的name,否則他們將作爲如果他們是獨立的按鈕:

<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 /> 

我猜這也是你的問題的根源。此外,一旦你這樣做,你只需要設置一個單選按鈕的checkedtrue,這將自動刪除其他按鈕的選擇。

+0

我做了您的更改,實際上,我不需要將其他單選按鈕設置爲checked = false。但是,IE仍然沒有任何反應。 – 2010-10-06 23:12:39

+0

它適用於我在IE6上。你遇到的問題究竟是什麼? – casablanca 2010-10-06 23:16:12

+0

我試圖在IE 8和IE 7上,當我按下按鈕時,沒有任何反應,沒有單選按鈕被選中,而在Firefox和Chrome上隨機單選按鈕被選中,每次按下按鈕 – 2010-10-06 23:17:48

0

我不能肯定,但可能你要告訴IE瀏覽器,你的onclick代碼在JavaScript這樣的:

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

我想你的建議,但仍然沒有成功。 – 2010-10-06 23:12:59

+1

另外,要小心使用'Math.round(Math.random()* 2);'。由於四捨五入,這會產生0和2,每個有25%的機率,1個有50%的機率。爲了得到0,1和2的偶數,使用:'Math.floor(Math.random()* 3);' – Gus 2010-10-06 23:15:17

+0

是的,你是對的。但在我的情況下,它不是一個問題,因爲我只用它來測試單選按鈕的選擇。 – 2010-10-06 23:19:33

0

一個問題: var randomChoice = Math.round(Math.random() * 2);

總是產生1