Je le code suivant - il est utilisé pour charger un menu déroulant lorsque l'utilisateur clique sur un menu déroulant avec seulement l'option par défaut chargée car cette baisse est en baisse assez importante et qui ne représentent pas comme ça beaucoup. Voici le code:
function populateDropDown(id, code) {
var currentSelect = document.getElementById(id);
<%--Don't enable the dropdown if it has more than one entry already - assume this to be populated.--%>
if(currentSelect.length == 1) {
currentSelect.remove(0);
var selectedIndex = 0;
for(var index = 0; index < codes.length; index++) {
var newOption = document.createElement('option');
newOption.value = codes[index];
newOption.text = values[index];
try {
currentSelect.add(newOption, null); // standards compliant
}
catch(ex)
{
currentSelect.add(newOption); // IE only
}
if(codes[index] == code) {
selectedIndex = index;
}
}
currentSelect.selectedIndex = selectedIndex;
}
}
Ce code fonctionne dans Opera 9.x, IE 7 - mais pas IE 6 (je tester dans Opera parce que j'aime Opera Dragonfly - mais il a vraiment que de travailler dans IE 7 et 6).
Dans IE 6, le code ne remplit le menu déroulant, mais il fixe la valeur sélectionnée à la première valeur dans la liste déroulante, pas la valeur sélectionnée. La valeur sélectionnée est réglée sur la valeur appropriée dans les deux autres navigateurs mentionnés.
Je ne suis pas un gourou Javascript par tout moyen - donc si quelqu'un sait pourquoi IE 6 est en train de faire cela et comment la contourner, ce serait apprécié. Notez également que le commentaire il y a un commentaire JSP - il est extirpé avant que ce Javascript est envoyé au navigateur (ce n'est pas un commentaire invalide).