2010-10-06 58 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