动态创建的无线电输入不会在IE7中检查

时间:2009-06-25 18:09:19

标签: javascript internet-explorer-7

我遇到了一个奇怪的IE特定错误。似乎在使用document.createElement创建无线电输入时,生成的小部件不会响应点击。当您点击它们时,它们会灰显一秒,但它们不会被检查。它在FF3中按预期工作,但在IE7中没有。知道这是怎么回事?

<html>
<body>
<form>
<div id="foo">
</div>
</form>

<script>
var foo = document.getElementById('foo');

var t = document.createElement('input');
t.type='radio';
t.name ='fool';

var f = document.createElement('input');
f.type='radio';
f.name ='fool';

foo.appendChild(t);
foo.appendChild(f);

</script>
</body>
</html>

1 个答案:

答案 0 :(得分:6)

出于某种原因,在IE中创建这样的单选按钮不起作用。

似乎有效的解决方案(根据发现here的文章):

var r;
try {
  // This works in IE
  r = document.createElement('<input type="radio" name="foo1"/>');
} catch( err ) {
  // For everyone else
  r = document.createElement('input');
}
r.setAttribute('type', 'radio'); 
r.setAttribute('name', 'foo1');