通过javascript动态选择html单选按钮在IE中不起作用

通过javascript动态选择html单选按钮在IE中不起作用,javascript,internet-explorer,radio-button,Javascript,Internet Explorer,Radio Button,我想从javascript中选择一个单选按钮。我使用这个简单的html文件来测试这个问题。下面的代码在firefox和chrome上正常工作,但在IE中不工作(没有版本可以工作)。我想知道为什么提供的代码在IE上不起作用,以及如何在IE中选择单选按钮 <html> <head> <script type="text/javascript"> function chooseOne() { var r

我想从javascript中选择一个单选按钮。我使用这个简单的html文件来测试这个问题。下面的代码在firefox和chrome上正常工作,但在IE中不工作(没有版本可以工作)。我想知道为什么提供的代码在IE上不起作用,以及如何在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>

函数chooseOne()
{
var randomChoice=Math.round(Math.random()*2);
如果(随机选择==0)
{
document.getElementById(“test0”).checked=true;
}
else if(randomChoice==1)
{
document.getElementById(“test1”).checked=true;
}
其他的
{
document.getElementById(“test2”).checked=true;
}
}
A
B
C

提前感谢,,
Spi

我不确定,但您可能必须告诉IE,您的onclick代码是用javascript编写的,如下所示:

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

首先,您应该为所有单选按钮赋予相同的
名称
,否则它们将充当独立按钮:

<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 />
A
B
C
我猜这也是你问题的根源。此外,一旦执行此操作,您只需将一个单选按钮的
选中设置为
true
,这将自动删除其他按钮的选择。

一个问题:
var randomChoice=Math.round(Math.random()*2)


将始终屈服于1

我做了您的更改,事实上,我不需要将其他单选按钮设置为checked=false。然而,在IE中仍然没有发生任何事情。它在IE6上对我有效。你到底遇到了什么问题?我正在尝试IE 8和IE 7,当我按下按钮时,什么都没有发生,没有选择单选按钮,而在firefox和chrome上,每次按下按钮都会选择一个随机单选按钮,这确实很奇怪。如果这是一个本地文件,你确定IE没有阻止脚本或类似的东西吗?这在IE6上发生在我身上,我必须手动允许scripts.OMG,你是对的。它实际上并没有运行脚本。对不起,我的不好。另外,在使用
Math.round(Math.random()*2)时要小心。由于四舍五入,这将生成0和2,各有25%的几率,1有50%的几率。要获得机会均等的0、1和2,请使用:
Math.floor(Math.random()*3)是的,你是对的。然而,在我的例子中,这不是一个问题,因为我只是用它来测试单选按钮的选择。