2010-11-10 65 views
2

我正在使用javascript填充下拉列表,並且在除IE瀏覽器(甚至全部8個版本)以外的每個瀏覽器中都能正常工作。Dropdown innerHTML在IE中無法正常工作?

以下是其中填充下拉功能:

function updateDropDown(divId, dropdownId) { 
    var containerDiv = document.getElementById(divId); 
    var checkboxes = $('.checkBox'); 
    var dropDownHTML = ""; 
    dropdownHTML = document.getElementById(dropdownId).innerHTML; 
    document.getElementById(dropdownId).innerHTML = ""; 

    for (var i = 0; i < checkboxes.length; i++) { 
     if (checkboxes[i].checked) { 
      document.getElementById(dropdownId).innerHTML = document.getElementById(dropdownId).innerHTML + "<option value=" + checkboxes[i].id + ">" + checkboxes[i].id + "</option>"; 
      alert(document.getElementById(dropdownId).innerHTML); 
     } 
    } 
} 

基本上,這個函數獲得與類複選框所有類元素,通過它們循環和填充下拉列表。

以下行:

alert(document.getElementById(dropdownId).innerHTML); 

已添加到調試。

在Firefox和其他瀏覽器,這是顯示的內容,這是預期輸出:

<option value="myValue">myValue</option> 

在IE瀏覽器,這是輸出:

GBP</option> 

有誰知道這是爲什麼發生了什麼?

回答

0

這裏我使用Javascript將值添加到下拉列表中。請注意,這些值不會在服務器端執行。希望這會對你有用。它的作品也在IE上。

function FillDropDownList() { 
    var energy = "[['1','FireWood']]"; //JSON FORMAT 
    if (energy != null) { 
     ddl = document.getElementById('<%= ddl.ClientID %>'); 
     var len = ddl.options.length; 
     ddl.length = 0; 
     document.getElementById('<%= ddl.ClientID %>').options[0] = new Option("--Select--", "0"); 

     for (i = 0; i < energy.length; i++) { 
      document.getElementById('<%= ddl.ClientID %>').options[i + 1] = new Option(energy[i][1], energy[i][0]); 
     } 
    } 
}