2011-08-20 163 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 
} 

相關問題