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 :

Pop Up qui disparaît + getElementById() qui est indefined


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut Pop Up qui disparaît + getElementById() qui est indefined
    Bonjour,

    je souhaite réaliser une PopUp pour afficher des informations à l'utilisateur. Normalement ca doit être simple, mais je n'y arrive pas !!!

    j'ai un script JS dans lequel j'ai ça :
    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
    function AffichePopUp(Chaine) {
     
    	document.getElementById('Idiv').style.visibility = "visible"; 
     
    	var tempo = document.getElementById('Idiv').value;
     
    	document.getElementById('Idiv').innerHTML = tempo+Chaine  ;
    }
     
    //Teste les champs du membre
    function IsConnectMembre(Pseudo,MDP)
    {
    	if(document.getElementById(Pseudo).value=="")
    	{
    		AffichePopUp("Veuillez saisir votre pseudo");
    	}
    ...
    }
    qui est appelé dans mon HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			<div id="Idiv" class="divPopUp">
     
    				<span class="spanCorpPopUp">
    						Le contenu
     
    				</span>
    			</div>
    Pour faire la mise en forme j'utilise ce CSS
    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
    .spanCorpPopUp
    {
    display : block;
     
    width: 260px;
    height: 9em;/* Hauteur correspondant à celle de notre image */
    background : transparent url('img/centre.png') no-repeat top left;
    }
     
    .divPopUp{
    /*Fixe la div par rapport au coin supérieur gauche de la page*/
    position:absolute; 
    left:50%;
    top:50%;
    visibility:hidden;
    display:block;
    }
    Dans ma pop up j'ai bien mon texte "Veuillez saisir votre pseudo" qui s'affiche mais la div disparaît tout de suite après !!! Je ne comprends pas pourquoi elle ne reste pas visible ?

    De plus, je souhaite récupérer le contenu de ma div dans la variable tempo pour mettre à la suite le texte "Veuillez saisir votre pseudo" mais quand je veux l'afficher (avec alert() ) j'obtiens "undefined", mais pourquoi ????
    Aidez moi je suis en grande détresse...

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tempo = document.getElementById('Idiv').value;
    Une div n'a pas de propriété value, donc tempo est effectivement undefined.
    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
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Alors comment je peux faire pour ajouter du texte dans ma div ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Général03 Voir le message
    Alors comment je peux faire pour ajouter du texte dans ma div ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('Idiv').innerHTML = tempo+Chaine  ;


    A+

  5. #5
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    OK, je viens de tester et le texte que je veux s'affiche merci E.Bzz.
    Par contre, ma div disparait tout de suite après qu'elle est apparue. Je vois le texte "Veuillez saisir votre pseudo" 1 seconde et après plus rien. J'ai essayé de jouer sur la visibility mais rien n'y fait elle ne veux pas rester visible. Cela vient du fait que j'ai appliqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('Idiv').innerHTML = tempo+Chaine  ;
    ?

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Général03 Voir le message
    OK, je viens de tester et le texte que je veux s'affiche merci E.Bzz.
    De rien, c'est ton code

    Tu n'as pas un timer dans ta page ?
    Qui rafraichirait la pop trop rapidement ?

    Sinon, donne nous tout le code ....

    A+

  7. #7
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Non je n'utilise pas de timer. Voila mon code HTML simplifié :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <head>
    <script type="text/javascript" src="JS/verifformulaire.js"></script>
    <link rel="stylesheet" href="PopUp.css" type="text/css">
    </head>
     
    <body>
     
    		<form method="post"  enctype="multipart/form-data" >
     
    			<div id="IChampsConnexion">						
    				Nom d'utilisateur <br>
    				Mot de passe
    			</div>
     
    			<div id="IMembre">
    				<input type="text" id="IDPseudo" name="user"> <br>
    				<input  type="password" id="IDMDP" name="password">	
    			</div>
     
    			<div id="IValide">
    				<input type="submit" value="S'enregistrer" onclick="IsConnectMembre('IDPseudo','IDMDP');">
    				<a value="Créer son compte" href="NvxMembre.html" >Créer son compte</a>
    			</div>
     
    		</form>
     
    <!--Pop up de réponse-->
     
    		<a id="info_bulle" class="aPopUp" >
    			<div id="Idiv" class="divPopUp">
    				<span class="spanHeaderPopUp">
    				<!--<span class="header">En-tête de la popup</span>-->
    					<span class="spanCorpPopUp">
    						Vos informations seront ici
    					</span>
    				<!--<span class="footer">Pied de page popup</span>-->
    				</span>
    			</div>
    		</a>
     
     
    </body>
    Pour le Javascript et le CSS voir plus haut, ils sont inchangés.

    PS : j'ai essayé de refaire un bout de code simplifié avec juste ma pop up (codes ci-dessus) mais toujours le même comportement

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    C'est la soumission de ton <form> qui intervient à la suite de l'affichage de ta "pop" (ne l'appelle pas "pop", ce n'est qu'un div, pas une fenêtre), et efface le texte puisque la page est rechargée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="S'enregistrer" onclick="IsConnectMembre('IDPseudo','IDMDP');">
    Il faut que ça soit la validation du pseudo qui lance le submit(), et non le clic sur le bouton ....

    A+

  9. #9
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Merci tu es vraiment un dieu ça fonctionne je vois ma div
    Par contre pour la soumission du formulaire j'utilise ces lignes dans mon JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('formul').submit();
    où "formul" est l'ID de mon formulaire
    Mais cette ligne ne donne aucune action : après avoir fait cela l'évènement "onsubmit" est lancé ? Dans mon html j'aimerais lancer ensuite une page PHP pour aller en base de donnée une fois que le user et mode de passe sont saisis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="formul" method="post"  enctype="multipart/form-data" onsubmit="page.php" >...</form>

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    C'est l'attribut "action" qui est utilisé lors du submit()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formul" id="formul" method="post"  enctype="multipart/form-data" action="page.php" >...</form>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['formul'].submit();
    A+

  11. #11
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Merci beaucoup E.Bzz tu m'a vraiment aidé je te tire mon chapeau
    Pour ceux que ça intéresse mon code (qui fonctionne) est le suivant :
    HTML
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <head>
    <script type="text/javascript" src="JS/verifformulaire.js"></script>
    </head>
     
    <body>
     
    	<form name="formul" method="post"  enctype="multipart/form-data" action="page.php" >
     
    			<div id="IChampsConnexion">						
    				Nom d'utilisateur <br>
    				Mot de passe
    			</div>
     
    			<div id="IMembre">
    				<input type="text" id="IDPseudo" name="user"> <br>
    				<input  type="password" id="IDMDP" name="password">	
    			</div>
     
    			<div id="IValide">
    				<input type="button" value="S'enregistrer" onclick="IsConnectMembre('IDPseudo','IDMDP');">
    				<a value="Créer son compte" href="NvxMembre.html" >Créer son compte</a>
    			</div>
    		</form>		
     
    <!--Fenêtre de réponse-->
     
    			<div id="Idiv" class="divPopUp">
     
    				Vos informations seront ici
     
    			</div>
     
     
    </body>
    Javascript
    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
    23
    24
    25
    26
    27
    function AffichePopUp(Chaine) {
     
    	document.getElementById('Idiv').style.visibility = "visible"; 
     
    	document.getElementById('Idiv').innerHTML = Chaine ;	
     
    }
     
    //Teste les champs du membre
    function IsConnectMembre(Pseudo,MDP)
    {
    	if(document.getElementById(Pseudo).value=="")
    	{
    		AffichePopUp("Veuillez saisir votre pseudo");
    	}
    	else
    	{
    		if(document.getElementById(MDP).value=="")
    		{
    		AffichePopUp("Veuillez saisir votre mot de passe");
    		}
    		else
    		{
    		document.forms['formul'].submit();
    		}
    	}
    }
    Encore merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2012, 18h43
  2. [PhpPgAdmin] c'est lui qui bogue ou c'est moi ?
    Par Chauve souris dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/11/2005, 16h30
  3. [Pop Up?]Ou un div qui est hidden?
    Par ozzmax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 15h14
  4. la police qui s'affiche n'est pas la bonne
    Par tiboleo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/07/2005, 13h22
  5. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47

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