2011-08-20 122 views
2

我有这个动态下拉代码。在这里,我想通过更改第一个下拉选项来动态加载第二个下拉选项。这在除IE以外的所有其他浏览器中工作正常。我不知道是什么原因,因为我是首发。有没有人可以解释原因。JavaScript不能在Internet Explorer中工作

HTML代码:

<select name="language" id="language" onchange="SetMedia(this)"> 
<option>Please select a Language</option> 
<option>English</option> 
<option>Tamil</option> 
<option>Telugu</option> 
</select> 

<select name="media" onChange="processButtonData(this.value)" id="media" disabled="disabled"> 
<option>select</option> 
</select> 

JS代码

<script type="text/javascript"> 
function SetMedia(objLanguage) { 
var objMedia = document.getElementById("media"); 
objMedia.options.length = 0; 
    objMedia.disabled = false; 
switch (objLanguage.value) { 
case "English": 
    objMedia.options.add(new Option("Please Select a Media","")); 
    objMedia.options.add(new Option("The Indian Express","http://www.indianexpress.com")); 
    objMedia.options.add(new Option("The Hindu","http://www.hindu.com")); 
    break; 
case "Tamil": 
    objMedia.options.add(new Option("Please Select a Media","")); 
    objMedia.options.add(new Option("Dinamalar", "http://www.dinamalar.com")); 
    objMedia.options.add(new Option("Dinamani", "http://www.dinamani.com")); 
    break; 
case "Telugu": 
    objMedia.options.add(new Option("Please Select a Media","")); 
    objMedia.options.add(new Option("Google","http://www.google.com")); 
    objMedia.options.add(new Option("Google2","http://www.google.com")); 
    break; 
default: 
    objMedia.options.add(new Option("select")); 
    objMedia.disabled = true; 
    break; 
} 
} 

</script> 
+0

你是在等你运行你的JavaScript之前,页面加载? – jfriend00

+3

你能否详细说明“不能工作?”什么是/没有发生? –

+1

@ jfriend00我试图根据从第一个选项中选择的选项填充第二个下拉选项。 – praba230890

回答

2

看来,非IE浏览器(如Chrome浏览器)将设置一个<option>标签的value隐含使用它的内文,但IE不会这样做。你有两个选择:

1)设置<option>值明确

<option value="English">English</option> 
<option value="Tamil">Tamil</option> 
<option value="Telugu">Telugu</option> 

或者,

2)开关text

var language = (objLanguage.options[objLanguage.selectedIndex]).text; 
switch (language) { 
    // ... 
} 

(经测试,在Chrome和IE9)

0

尝试使用旧方法替代动态广告d选项

var option = document.createElement("option"); 
option.value = ""; 
option.text = "Please Select a Media"; 
try { 
    objMedia.options.add(option, null); 
} catch(exception) { 
    objMedia.add(option); // Older IE doesn't support the standard 
} 

相关问题