我正在使用javascript填充下拉列表,并且它在每个浏览器中运行良好,当然,除了Internet Explorer(所有版本甚至8)。
以下是填充下拉列表的功能:
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);
已添加到debug。
在Firefox和其他浏览器中,这是显示的内容,即预期输出:
<option value="myValue">myValue</option>
在IE中,这是输出:
GBP</option>
有谁知道为什么会这样?
答案 0 :(得分:4)
是的我在下拉列表中遇到同样的问题,您需要创建下拉列表的选项,如下面的链接(它在所有浏览器中兼容)
http://www.electrictoolbox.com/javascript-add-options-html-select/
希望有所帮助
答案 1 :(得分: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]);
}
}
}