修复:为什么我的动态SELECT无法在IE9中运行?

时间:2012-06-17 09:46:50

标签: javascript html internet-explorer

我在here上有一个脚本,可以在FF14和Chrome20中正常使用。

其中一部分在IE9中无效。

如果您在IE9中打开页面并将第一个下拉列表(综合搜索)更改为“Word TM”,则第二个下拉列表将变为空。

在其他浏览器中,行为是正确的,它会在选择菜单中添加两行。

知道为什么IE9不喜欢这个以及如何修复它?

感谢下面的评论,问题现已解决!

2 个答案:

答案 0 :(得分:4)

您有一个ID为“report_options”的SELECT元素(z),并尝试使用innerHTML更改其选项。这在IE9中无效。使用z.options.remove(zeroBasedPosition)删除选项和z.options.add(OPTION),其中OPTION是由以下内容创建和添加的DOM元素:

var option = document.createElement("OPTION");
option.text = "your text";
option.value = "your value";
z.options.add(option);

答案 1 :(得分:3)

问题在于您在<option>内创建<select>元素的方式:

z.innerHTML="<option value='no' SELECTED>Not needed</option>...";

Internet Explorer始终存在<select>元素和innerHTML的问题(您只能使用它来清除所有选项,innerHTML = "")。向<select>元素正确添加选项选项的唯一跨浏览器方法是使用其add方法。