Bon j'ai mieux : pour remplacer les lignes suivantes qui fonctionnent tres bien sur firefox mais pas sous ie :
Code :
- if(clearlist==-2)
- document.getElementById(obj).innerHTML = entete+pied;
- else if(clearlist==-1)
- document.getElementById(obj).innerHTML = entete+txtselect+txt+pied;
- else
- document.getElementById('subform'+numCategory).innerHTML = document.getElementById('subform'+numCategory).innerHTML + txt + pied;
|
J'ai écris un truc qui marche un peu (mais pas completement)
Code :
- if(clearlist==-2)
- {
- try{
- document.getElementById(obj).outerHTML=entete+pied;
- } catch(e){alert("clearlist==-2 :"+obj)}
- }
- else if(clearlist==-1)
- {
- try{
- document.getElementById(obj).outerHTML=entete+txtselect+txt+pied;
- } catch(e){alert("clearlist==-1 :"+obj)}
- }
- else
- {
- var oOption = document.createElement("OPTION" );
- oOption.text=text;
- oOption.value=id_categorie;
- switch(numCategory)
- {
- case 1:
- document.all.subform1.add(oOption);
- break;
- case 2:
- document.all.subform2.add(oOption);
- break;
- case 3:
- document.all.subform3.add(oOption);
- break;
- case 4:
- document.all.subform4.add(oOption);
- break;
- case 5:
- document.all.subform5.add(oOption);
- break;
- case 6:
- document.all.subform6.add(oOption);
- break;
- case 7:
- document.all.subform7.add(oOption);
- break;
- case 8:
- document.all.subform8.add(oOption);
- break;
- case 9:
- document.all.subform9.add(oOption);
- break;
- case 10:
- document.all.subform10.add(oOption);
- break;
- case 11:
- document.all.subform11.add(oOption);
- break;
- case 12:
- document.all.subform12.add(oOption);
- break;
- }
- }
|
C'est horrible le derniere cas hein ?
Bref, le comportement n'est pas parfait : parfois, dans le cas clearlist==-2 ou clearlist==-1 j'ai une erreur lancée, comme si l'objet cherché n'existait pas ! (je n'ai aucun soucis avec les 3 lignes pour firefox)
De plus, je n'ai pas trouvé de solution pour faire un document.all.VARIABLE.add(oOption); : il prend l'objet variable, et pas la string qu'elle représente, d'ou l'affreux switch case écrit !
Donc le résultat : quand l'utilisateur clique sur le premier menu deroulant et choisis une entrée, le second menu déroulant est créé, rempli correctement (le cas numero 3 fonctionne bien). Si je change la selection du premier menu déroulant et que celui efface tout (cas numero 1) ca fonctionne et je peut relancer tout ce que je veut. Par contre si le menu déroulant recrée un nouveau menu, alors j'ai des erreur lancée, mettons que document.all.subform1.add(oOption) renvoi une valeur nulle, comme si subform1 n'existait pas...
Bon enfin ca avance quand meme : avez vous une solution surtout pour eviter ce switch, le reste ca doit etre un bug a moi bien idiot !
---------------
Un blog qu'il est bien