2010-11-18 7 views
2

J'ai deux fonctions simples pour ajouter et supprimer des éléments sélectionnés de la liste. Pour ajouter des éléments à la liste de sélection, j'utilise la méthode suivante.jquery IE 7/8 select append issue

Le problème est que cela fonctionne dans Firefox et les valeurs sont ajoutées à la liste. Alors que la même chose n'est pas visible dans IE. Je peux voir les éléments sont ajoutés à la liste mais ils ne sont pas visibles. Des idées?

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); 

} 

Répondre

1

Au lieu de

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

Essayez d'utiliser

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

Peut-être sage d'utiliser .val (données) pour définir la valeur, car cela ressemble à des données typées et une valeur apostrophe ou non échappée entraînera des problèmes. – Orbling

3

Vous pouvez utiliser la méthode séculaire d'ajouter une option à une liste de sélection qui fonctionne dans tous les principaux navigateurs publiés depuis 1997 :

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