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 :

manipulation de "node"


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut manipulation de "node"
    Quand je duplique le noeud, la duplication apparaît à l'écran tant que "alert(...)" bloque le déroulement, puis il disparait...

    ceci sous firefox 3.6.13
    Alors que sous IE il reste affiché.

    J'ai essayé en changeant le nom du nouveau noeud, (nd.id="lala") mais rien n'y fait.

    Quelqu'un aurait-il une idée ?
    Merci

    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
    19
    20
    21
    22
     
    <body>
     
     
    <script>
    function tester(){
    	var noeud=document.getElementById("ici");
    	var nd=document.getElementById("la").cloneNode(true);
    	noeud.appendChild(nd);
    	alert("arret");
    }
    </script>
     
    blalbla
     
    <span id="ici">et encore</span>
    <span id="la">autre chose</span>
     
    <form>
    <button  onClick="tester()">tester</button>
    </form>
    </body>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est à cause de la balise <form>.
    Une balise <button> se comporte par défaut comme un submit, donc dans ton exemple, le clic exécute la fonction puis recharge la page, donc la modification disparait.
    Essaye soit en supprimant la balise form, soit en utilisant une balise <input type="button" />
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    C'est en effet une bizarrerie que je n'avais jamais encore rencontré.

    L'explication en est simple :
    FFX considère la balise bouton comme un bouton submit qui déclenche l'envoi
    du form.
    To form n'ayant pas d'action, par defaut il considère la page action comme la page du form, donc il recharge

    Solutions:

    mettre un inhibiteur de soumission du form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form onsubmit="return false" >
    Ou ne pas mettre de balise form...

    Ou remplacer le bouton par un input type button
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='button' onclick="tester()" value="tester" />
    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
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Par défaut Merci à tous
    Une heure d'essais sans trouver le pourquoi !
    et 5 minutes grâce à vous
    MERCI !

    On peut conserver le bouton en retirant la balise <form> et tout fonctionne bien.

+ Répondre à la discussion
Cette discussion est résolue.

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