IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

javascript qui ne suis pas la modification de l'ID


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut javascript qui ne suis pas la modification de l'ID
    bon, j'vais tenter d'expliquer mon probleme le plus simplement possible.

    j'ai un tableau que je peux modifier en javascript (ajouter ou supprimer des lignes, toujours la meme)

    dans chaque ligne, j'ai 2 id que je met dynamiquement lorsque je la cree.

    lorsque je supprime la ligne, je doit decaler tous mes id comme suit (par expemple) (les 2 id sont de la meme forme : text+id qui vaut le numero de la ligne)

    1->1
    2->suppr
    3->2
    4->3
    5->4

    voila le code qui me permet de le fair

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for(var i=(idx +2) ; i<=parseInt(document.getElementById("nbAffirmation").value) +1 ; i++){
    	champ = document.getElementById("question"+i);
    	rep = document.getElementById("rep_question"+i);
     
    	champ.parentNode.parentNode.firstChild.innerHTML = "Affirmation "+(i -1)+" :";
     
    	champ.name = "question"+(i -1);
    	champ.id = "question"+(i -1);
     
    	rep.name = "rep_question"+(i -1);
    	rep.id = "rep_question"+(i -1);
     
    }
    la creation fonctionne parfaitement. La suppression aussi si c'est le dernier ou avant dernier qui je supprime.

    Mais ca se gate a partir de 4 elements et que je supprime le second. A l'affichage, j'ai bien ce qu'il faut (j'ai le numero de la ligne dans un champs de mon tableau) et la developer toolbar d'IE7 me dit que tout s'est bien passe.

    mais voila, le javascript lui, me dit tout autre chose. Lorsque je teste mon tableau avec le javascript, voila ce que j'ai :

    1->1
    2->suppr
    3->2
    4->2
    5->3

    le plus etonant est que je n'ai pas de conflit d'ID alor que 3 et 4 pointe sur le meme element ....

    quelqu'un peut-il me dir ou je me plante ? Je vais tester sous d'autre navigateur voir si ce serai pas IE qui me prouve encore une fois qu'il vau mieu utiliser autre chose, mais l'application sera utilise sur IE7 et 6, du coup, il me faut absolument une solution.

    si quelqu'un a une solution plus simple a me proposer, j'suis preneur. mais j'aimerais quand meme comprendre ce phenomene.

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    On peut voir le passage de ton html qui correspond aux éléments maniplulés ? (notamment nbAffirmation, la structure du tableau, tout ça ^^)

    sinon en attendant il y a un parseInt dans la conditionnelle de ta boucle for, qui n'a pas de second param : mets-lui un "10" ça ne peut pas faire de mal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    i<=parseInt(document.getElementById("nbAffirmation").value, 10) +1
    (pour forcer la conversion en décimal et éviter les galères d'une conversion implicite en octal...)

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    attention à firstChild, il ne pointe pas toujours sur le Node auquel on s'attend ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut
    voila le html epurer avec une seule ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <TABLE>
     <TBODY>
      <TR>
       <TD>Affirmation 1 : </TD>
       <TD><INPUT id="question1" size="50" name="question1" value="" /></TD>
       <TD>
        <SELECT id="rep_question1" name="rep_question1">
         <OPTION value="1">Vraie</OPTION> <OPTION value="0">Fausse</OPTION>
        </SELECT> </TD><TD><DIV class="lienDiv" onclick="affirmation(this.parentNode.parentNode, 'suppr')">Supprimer</DIV>
       </TD>
      </TR>
      <TR>
       <TD colSpan="4">
        <DIV class="lienDiv" onclick="affirmation(this.parentNode.parentNode.parentNode, 'ajout')">Ajouter une Affirmation</DIV>
       </TD>
      </TR>
     </TBODY>
    </TABLE>
    les autres navigateurs qu'IE ne me change pas les ID.
    le nbAffirmation est un input hidden sous le tableau
    le firstChild fait bien son taf ce coup-ci

    j'me demande si ca se fait bien de modifier les id comme ca ...

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut
    pardon pour le double post (mais ca me permet d'ajouter de nouvelle donnée)

    j'ai edite mon premier post qui contenais une tite erreur (un test qui restais) et j'avais une petite erreur quand j'ai tester sur les autres navigateurs. apres correction, ils ont tous le meme comportement que IE7 (opera, safari, chrome, IE6) sauf FireFox3... qui lui fonctionne parfaitement.

    j'ai peur que ce soit donc unprobleme d'interpretation des autres navigateurs. mais dans ce cas, commen regler le probleme ?

Discussions similaires

  1. Fonction javascript qui ne fonctionne pas sous IE
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/03/2009, 20h10
  2. Fonction javascript qui n'effectue pas les actions demandées
    Par Joe-La-Boule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2008, 15h27
  3. function javascript qui ne fonctionne pas dans la balise <body>
    Par typikal dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/04/2008, 16h45
  4. [XHTML] Du code Javascript qui ne passe pas en validation XHTML !
    Par LestoK dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/07/2007, 11h22
  5. Javascript qui ne fonctione pas partout
    Par nad dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/11/2004, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo