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