[EDIT] Voir la fin de ce post
Je rencontre un petit problème de script avec mon vieil ami Internet Explorer (dans sa version 7)... Alors que tout fonctionne sous Firefox (ce qui est logique vu qu'il n'y a pas de raison que le code plante...).
Ce que je fais, c'est simplement remplacer un élément de formulaire par un autre. J'ai essayé de deux façons différentes, premièrement de supprimer l'élément ancien puis d'ajouter le nouveau puis de faire un replaceChild. Dans les deux cas, c'est pareil : le code plante sous IE lors de la tentative de supprimer l'élément mais seulement après avoir effectué un premier changement (lors du premier changement, tout se passe bien), j'ai pu pourtant vérifier que l'élément qui le remplace possède bien le bon attribut name etc... Le code est plutôt basique :
J'ai essayé en mettant le numéro de l'élément au lieu de l'attribut name, c'est pareil... En gros j'ai l'impression que mon élément ne fait pas parti du formulaire...
Comme je l'ai dis plus haut, tout fonctionne bien sous Firefox... et nodeType me donne bien le bon type de noeud (sous IE aussi bien que sous FF)...
Alors évidemment, c'est contournable en utilisant l'id, mais je n'ai pas envi de changer du tout au tout mon code pour une problème sous IE.
__________________
Il semblerai que l'ancien titre (problème de remove/replaceChild) ne soit plus pertinent. Car après plusieurs recherche, il est évident que le problème vienne de la fonction appendChild qui, vraisemblablement, ajoute le noeud sans qu'il soit réellement pris en compte dans le document et donc impossible de le supprimer...
Quelqu'un a-t'il déjà recontré ce problème ? Ou quelqu'un a-t'il une explication ? Merci d'avance...
Modifié par Tsukaniki (24 Jan 2008 - 14:51)
Je rencontre un petit problème de script avec mon vieil ami Internet Explorer (dans sa version 7)... Alors que tout fonctionne sous Firefox (ce qui est logique vu qu'il n'y a pas de raison que le code plante...).
Ce que je fais, c'est simplement remplacer un élément de formulaire par un autre. J'ai essayé de deux façons différentes, premièrement de supprimer l'élément ancien puis d'ajouter le nouveau puis de faire un replaceChild. Dans les deux cas, c'est pareil : le code plante sous IE lors de la tentative de supprimer l'élément mais seulement après avoir effectué un premier changement (lors du premier changement, tout se passe bien), j'ai pu pourtant vérifier que l'élément qui le remplace possède bien le bon attribut name etc... Le code est plutôt basique :
onchange="this.parentNode.removeChild(this.form.elements['nouvelle_vartemplate_valeur_defaut']);"
J'ai essayé en mettant le numéro de l'élément au lieu de l'attribut name, c'est pareil... En gros j'ai l'impression que mon élément ne fait pas parti du formulaire...
Comme je l'ai dis plus haut, tout fonctionne bien sous Firefox... et nodeType me donne bien le bon type de noeud (sous IE aussi bien que sous FF)...
Alors évidemment, c'est contournable en utilisant l'id, mais je n'ai pas envi de changer du tout au tout mon code pour une problème sous IE.
__________________
Il semblerai que l'ancien titre (problème de remove/replaceChild) ne soit plus pertinent. Car après plusieurs recherche, il est évident que le problème vienne de la fonction appendChild qui, vraisemblablement, ajoute le noeud sans qu'il soit réellement pris en compte dans le document et donc impossible de le supprimer...
Quelqu'un a-t'il déjà recontré ce problème ? Ou quelqu'un a-t'il une explication ? Merci d'avance...
Modifié par Tsukaniki (24 Jan 2008 - 14:51)