Bonjour à tous,
J'ai un soucis avec des champs select dynamiques sous IE (6 ou 7).
Le principe est simple à chaque fois que l'utilisateur choisi une valeur dans une liste déroulante, on cree une nouvelle liste, on l'affiche et ainsi de suite (cela permet de parcourir une arborescence).
Les valeurs des options de chaque select sont recuperees par un appel Ajax, transmises au format JSON puis traitées et transformées en elements option du nouveau champ select.
La fonction en question :
function showPath(level) {
// On ne fait rien s'il n'y a pas au moins 2 options a creer
if(datapath['chemins'].length > 1) {
var select = document.createElement("select");
document.getElementById('path-form').appendChild(select);
levelup = level + 1;
newid = 'level-'+levelup;
select.id = newid;
eval('select.setAttribute("onchange","javascript:browsebypath('+(levelup)+');")');
for(i = 0; i < datapath['chemins'].length; i++) {
label = datapath['chemins'][i].label;
id = datapath['chemins'][i].id;
var opt = new Option(label,id,false);
opt.innerHTML = label;
select.appendChild(opt);
}
}
document.getElementById("loading").className="hidden";
}
Le probleme se pose donc avec Internet Explorer, la première liste est présente au chargement de la page donc pas de probleme l'appel du onChange se passe bien et le 2eme select s'affiche (son attribut onChange contient bien l'appel à la fonction à executer) mais rien ne se produit.
Quelqu'un a une idée ?
Configuration: Windows XP
Firefox 3.0.1