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 :

Faire apparaître/disparaître un texte au clic


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2019
    Messages : 30
    Points : 23
    Points
    23
    Par défaut Faire apparaître/disparaître un texte au clic
    Salut

    Je teste du code en voulant faire apparaitre un texte dans un Div en cliquant sur un bouton. Le texte apparait bien dans le Div en question mais pendant une fraction de seconde et je ne comprends pas ce que j'ai fait de mal dans le code
    Code HTML : 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
    <div id="zone3">
              <form id="addPost">
                <div>
                  <input type="text" id="titleCom" placeholder="title">
                </div>
                <div>
                  <textarea id="bodyCom" cols="66" rows="9"></textarea>
     
                </div>
                <!-- <input type="submit" value="submit"> -->
                <button id="btn" value="Submit form"> Submit </button>
              </form>
     
     
     
     
            </div>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    let Body = 'Test commentaire';
    function SendACom(e){
            // let Body = document.getElementById('bodyCom').value;
        let NewParagraphe = document.createElement('p');
        let NewText = document.createTextNode(Body);
        NewParagraphe.appendChild(NewText);
        let a = document.getElementById('zone4');
        a.appendChild(NewText);
        // // e.stopPropagation(); 
        // console.log(Body);
     
     
    }
    Merci pour l'aide si vous savez

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonsoir,

    C'est un gag, c'est ça?

    - aucun élément présenté n'a pour id "zone4";
    - un formulaire pour faire apparaître un texte dans la page n'est pas logique;
    - ta fonction SendACom() n'est appelée nulle part;
    - en appuyant sur ton bouton, tu quittes la page donc aucune chance d'afficher quoi que soit...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2019
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    Oui désolé j'ai mal copié collé tout le html, enfin plus tôt je n'ai pas tout copié collé.

    • Le div 4 apparait plus bas dans le code Html.
      La fonction SendACom est appellé tout en haut du code javascript.
      J'utilise pour le moment le formulaire pour de simple test, après il servira pour tester l'écriture dans un fichier .Json en local. Là en gros je voulais simplement cliquer sur un bouton et un texte apparait dans un Div. Après j'écris un commentaire avec un titre, quand je clique sur un bouton, le texte apparait dans un autre div et il s'écrit aussi dans un fichier .Json en local. https://gist.github.com/quenti77/9c6...cfdbfa338ddfb4


    Tout ça dans le but de tester et apprendre les fonctionnalités.

    Je copie de nouveau le code bien en entier :

    Code HTML : 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
     
    <div id="zone3">
              <form id="addPost">
                <div>
                  <input type="text" id="titleCom" placeholder="title">
                </div>
                <div>
                  <textarea id="bodyCom" cols="66" rows="9"></textarea>
     
                </div>
                <!-- <input type="submit" value="submit"> -->
                <button id="btn" value="Submit form"> Submit </button>
              </form>
     
     
     
            </div>
     
     
             <div id="zone4">
     
            </div>

    Code JS : 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
     
     
    document.getElementById('btn').addEventListener('click', SendACom)
     
    let Body = 'Test commentaire';
    function SendACom(e){
            // let Body = document.getElementById('bodyCom').value;
        let NewParagraphe = document.createElement('p');
        let NewText = document.createTextNode(Body);
        NewParagraphe.appendChild(NewText);
        let a = document.getElementById('zone4');
        a.appendChild(NewText);
        // // e.stopPropagation(); 
        // console.log(Body);
     
    }

    Ceux sont les premières fois que je pose des questions sur du code, donc je me rode dans la présentation

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    OK, je comprends déjà mieux;

    Comme je te le disais, un bouton de formulaire est fait pour ... envoyer un formulaire au serveur.
    Bref, tu dois inhiber cette action avec la méthode preventDefault()
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document.getElementById('btn').addEventListener('click', SendACom)
     
    let Body = 'Test commentaire';
    function SendACom(e){
        e.preventDefault()
        let NewParagraphe = document.createElement('p');
        NewParagraphe.textContent=Body
        document.getElementById('zone4').appendChild(NewParagraphe);
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2019
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    Je te remercie beaucoup, j'ai bien compris le preventDefault() en lisant la doc et ça marche bien.
    Et ta modification du code, car j'étais en train de voir comment le rendre plus cours, et j'étais presque au niveau de ta modification avant de l'avoir vu. (pour l'instant ce n'est pas encore instinctif pour moi)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/10/2019, 09h15
  2. Faire apparaître l'animation texte dans une image.
    Par leriptide dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/05/2019, 15h39
  3. [XL-2013] Faire apparaître/disparaître plages de cellule sous condition
    Par tom12345 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/03/2018, 10h10
  4. [DOM] Faire apparaître de nouveau sur un clic
    Par francoisch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/05/2008, 20h19
  5. Faire apparaître un champ texte en cliquant sur un select
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2005, 17h16

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