C'était intéressant. Dans une liste déroulante, en essayant de ne pas utiliser jQuery (à l'exception de réduire ma douleur sur les loisirs), j'ai rencontré un problème qui ne permet pas aux navigateurs actuels d'attraper correctement l'option sélectionnée. Voici mon code, pour la page qui recrée la question (rappelez-vous, pas de jQuery pour résoudre nécessairement problème, mais plus ou moins me dire ce que je fais mal.javascript dynamique sélectionnez dropdown
Celui-ci m'a déconcerté.
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<div id="select-holder" />
<input id="some-button" type="button">
<script type="text/javascript">
$("#some-button").click(function(){
var select_element = document.createElement('select');
select_element.setAttribute("id", "some-id");
select_element.setAttribute("name", "some-name");
var options = new Array();
for (var i = 0; i < 3; i++){
options.push(new Option("Option " + i, "Value" + i, false, false));
}
options[1].setAttribute("selected", "selected");
for (var option in options){
select_element.appendChild(options[option]);
}
$("#select-holder").append(select_element);
});
</script>
</body>
</html>
le html est ce qui crée:
<select id="some-id" name="some-name">
<option value="Value0">Option 0</option>
<option value="Value1" selected="selected">Option 1</option>
<option value="Value2">Option 2</option>
</select>
Mais l'anomalie est que (dans Firefox au moins), l'option sélectionnée finit par être l'option 0, ce qui est l'élément DOM sélectionné dans IE6, cela. sélectionnez la liste déroulante ne fonctionne pas du tout
Il existe une autre méthode qui fonctionne, qui consiste à assembler les options manuellement, ce qui fonctionne dans tous les navigateurs que j'ai testés.
IE6 ne fonctionne pas, mais pas sûr que cela m'importe. Si vous avez des suggestions pour IE6 cependant, j'apprécierais. Cela a fonctionné parfaitement dans Firefox. –