Ajouter une option vide en haut de la sélection et en faire l’option sélectionnée dans IE

HTML:

 Volvo Saab Mercedes Audi  

jQuery:

 $("#dropdown").prepend(""); 

Lorsque j’exécute ceci dans FireFox ou Chrome, la nouvelle option vierge insérée est sélectionnée dans le menu déroulant. Lorsque je l’exécute dans IE8, Volvo a toujours sélectionné. Des idées?

http://jsfiddle.net/YFu2h/

Changez-le en ceci et ça va marcher:

 $("#theSelectId").prepend("").val(''); 

http://jsfiddle.net/YFu2h/1/

Il semble qu’IE n’évalue l’atsortingbut selected lorsqu’il rencontre pour la première fois la select .

Je ne sais pas pourquoi votre code ne fonctionne pas (peut-être que cela a quelque chose à voir avec le fait que, dans IE, selectedIndex est en lecture seule), mais cela fonctionne dans IE:

 $("#dropdown").prepend(""); $("#dropdown")[0].options[0].selected = true; 

Essayer:

 $("#dropdown").prepend(new Option('', '', true, true)); $("#dropdown option:first").attr("selected", "selected"); 

Ou, si vous préférez:

 $("#dropdown").prepend(""); $("#dropdown option:first").attr("selected", "selected"); 

L’utilisation de la première option est légèrement plus rapide. Les guillemets vierges désignent des valeurs et du texte vierges. Vous devez donc les remplir comme vous le souhaitez. Vous n’avez pas besoin de l’atsortingbut sélectionné dans le pré-ajout, nous les ajoutons ensuite. C’est quelque chose à voir avec Internet Explorer ne reconnaissant pas qu’il soit marqué comme sélectionné car il vient juste d’être créé.

 $("#id").prepend(""); 

prepend appenda l’option to top et selected = ‘selected’ le fera sélectionner. Comme valeur = ”, il s’agit donc d’une option de valeur vide.