2010-11-18 58 views
2

我有两个简单的函数来追加和删除列表中的选择元素。 要添加元素到选择列表我使用下面的方法。jquery IE 7/8 select append issue

问题是这是在Firefox中工作,值被附加到列表框。虽然在IE中不可见。 我可以看到元素被添加到列表中,但它们不可见。 任何想法?

function moveTrans() 
{ 
var length= $("#btsexpresults").length; 

if($("#transvendor").val() == "-1" || $("#trans").val() == "-1" || $("#transconfto").val().length==0 || $("#transcap").val().length==0 || $("#transcovdeep").val().length ==0 || $("#transcovwide").val().length ==0 || $("#transquant").val().length ==0) 
{ 
alert("Please enter all input fields"); 
return false; 
} 

var data= $("#transvendor").val() + " : "+ $("#trans").val() + " : "+ $("#transconfto").val() + " : "+ $("#transcap").val() + " : "+ $("#transcovdeep").val() + " : "+ $("#transcovwide").val() +" : "+ $("#transquant").val()  ; 
var no = new Option(); 
no.value = data; 
no.text = data; 
$("#transresults").append(no); 

} 

回答

1

而不是

var no = new Option(); 
no.value = data; 
no.text = data; 
$("#transresults").append(no); 

尝试使用

$("#transresults").append("<option value='"+data+"'>"+data+"</option>"); 
+1

可能明智地使用.val(data)设置该值,因为看起来像键入的数据,并且撇号或未转义的值将导致问题。 – Orbling 2010-11-18 15:10:57

3

你可以使用添加选项来选择列表,在自1997年以来发布的所有主流浏览器的经过时间考验的方法:

var select = document.getElementById("transresults"); 
var opt = new Option("Option text", "optionValue"); 
select.options[select.options.length] = opt;