Javascript, probleme sous IE

Fermé
tanna - 27 août 2011 à 04:21
 tanna - 27 août 2011 à 14:56
Bonjour,
Je suis entrain de créer un sit, et j'ai eu besoin d'une fonction javascript qui rajoute et supprime des lignes dans un tableau.
Ces lignes, contiennent des input et des select.
J'ai pu avoir ce que je voulais, ca marche parfaitement sur FireFox ainsi que Chrome, mais alors la sur IE ca ne fonctionne vraimment pas!!! Je me suis creuser la tête depuis des heures en vain . Svp aidez moi.

Voici la fonction

<script type="text/javascript"> //les fonction javascript pour ajouter / supprimer des produits ou des ?pes
var i = 0;

function fAddText() { //fonction qui cr?une ligne de produit en plus
var Contenu = document.getElementById('Cible').innerHTML; //on affecte la var contenu a tout ce qui est dans <div id="cible">
i=i+1;

if(i<20){
Contenu = Contenu +

'<tbody style=\"display:inline;\" id=\"suppr'+i+'\"><tr><td><input type=\"text\" name=\"produit'+i+'\"/></td><td><input type=\"text\" name=\"quantite'+i+'\" style="width:40px;" /></td><td><select name=\"mesure'+i+'\"><option value=0><?php echo CHOISIR;?></option><option value=1><?php echo GRAMME;?></option><option value=2><?php echo CL;?></option></select></td><td><select name=equivalent'+i+' id=equivalent'+i+'><?php $req=mysql_query("SELECT * FROM recipients");while($data=mysql_fetch_assoc($req)){echo '<option value="'.$data['id'].'">'.constant($data['Lib']).'</option>';}?></select></td><td><input type="button" value="<?php echo SUPPRIMER_PROD;?>" onclick="removeIt('+i+')" /></td></tr></tbody>'; // chaque clic qui declanche cette fonction, contenu aura un input en plus

document.getElementById('Cible').innerHTML = Contenu;//on reaffecte le tout a la var Contenu
}
else
{
alert("<?php echo NBR_LIMITE_CLIC; ?>");
}
}
function removeIt(i){
ligne = document.getElementById('suppr'+i+'');
ligne.removeChild(ligne.firstChild );
}
</script>

Merci beaucoup

3 réponses

Bonjour,

Avec le reste du code (partie HTML) on pourrait peut-être t'aider (en testant de notre côté) à trouver pourquoi ça ne fonctionne pas sous IExplorer...
@+
1
C'est "cible" ou "Cible" ? (getElementById('Cible') mais <div id="cible">)
A priori, ce code tente de mettre un TBODY dans un DIV, pas certain du bon fonctionnement de la chose.

A noter que sous IE, on ne peut jouer avec l'innerHTML d'un TABLE, ni d'un TBODY, déjà présent dans le DOM. (On peut modifier ceux des TD en revanche).

Pour un ajout de ligne dans un TABLE, la manière propre et sûre est de le faire par les méthodes DOM.
1
Re,
Donc ce que j'essaie de faire, est d'insérer une nouvelle ligne dans un tableau, voici le code html qui utilise cette fonction

<table id="Cible" style="color:#666666"><!-- tableau qui va contenir les produits -->

</table>
1