[JS] problème IE

Fermé
Filea - 24 janv. 2008 à 10:57
 Filea - 25 janv. 2008 à 07:58
Bonjour

J'ai un souci sur un de mes scripts pour mon site.
Le principe est que j'ai un tableau, et je souhaite ajouter une nouvelle ligne.
pour cela je copie la dernière ligne et modifie quelques valeurs dans les noms et vauleurs des champs.

Code HTML :
    <table name="langTable" id="_langTable">        <tr>
            <td><input type="text" name="line" value="0" disabled="disabled"/></td>
            <td><input type="text" name="deffr0"/></td>
             <td><input type="text" name="defen0"/></td>
             <td><input type="checkbox" name="del0"/></td>
        </tr>
         ...
    </table>



pour voir ce que ça donne c'est le tableau là : http://filea.hostarea.org/admin/index.php

donc je souhaite copier la dernière ligne pour en créer une nouvelle en modifiant 'name' et 'value' des 'inputs'.

mon script JS :

Code JavaScript:
    function addline(){
         var tab=document.getElementById('_langTable').getElementsByTagName('tr'); 
        //Je récupère les 'TR'
        var newtr=tab[tab.length-1].cloneNode(true); 
        // Je clone le dernier Noeud
        var newtd=newtr.getElementsByTagName('td'); 
        // Je récupère un tableau de 'td' de ce noeud
       
        for(i=0; i<newtd.length; i++){  // je vais parcourrir le tableau
            newtd[i].getElementsByTagName('input')[0].name=
................newtd[i].getElementsByTagName('input')[0].name.
................replace(/[0-9]+/,tab.length);
            // 'input'.name = l'ancien avec le chiffre remplacé par tab.lenght
 
             if(i==0) //si premier tour on change la valeur de 'input'.value 
                newtd[i].getElementsByTagName('input')[0].value=
....................newtd[i].getElementsByTagName('input')[0].value.
....................replace(/[0-9]+/,tab.length);
             else // sinon input.value =vide
                newtd[i].getElementsByTagName('input')[0].value="";
         }

         document.getElementById('_langTable').appendChild(newtr); 
        //on ajoute le tout au tableau
    }



donc voila, ça marche a la perfection sur Firefox, mais pas du tout sur IE7
ça fait une journée que je cherche d'où ça vient ...
si quelqu'un a déjà eu ce pb et pouvait me donner quelques pistes ça serait vraiment sympa

a++
A voir également:

4 réponses

alitpsa Messages postés 289 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 14 décembre 2012 51
24 janv. 2008 à 11:04
bien fait
0
Mon IE7 ne fonctionne pas très bien non plus depuis un moment...
Essaie des mises à jour pour javascript, de mettre à jour IE7... Sinon je ne sais vraiment pas quoi dire car je ne sais pas non plus d'où cela peut provenir...
0
en fait le problème a l'air de venir du code en lui même car il ne marche pas non plus sur ie6
0
Pour ceux que ça pourrait intéresser j'ai solutionné ce problème.

Alors que sous FF on peut faire une appendChild direct dans l'élément 'table' sous IE, il faut que l'appendChild se fasse dans le 'tbody' meme si on ne l'a pas spécifé explicitement dans le code html.
0