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

jQuery Discussion :

Affichage de plusieurs div modal simultanément sur une seule page


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    pas grand chose
    Inscrit en
    Septembre 2018
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : pas grand chose
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 131
    Points : 73
    Points
    73
    Par défaut Affichage de plusieurs div modal simultanément sur une seule page
    Bonjour
    Je souhaite afficher une div modal, pour cela je procède ainsi :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <div id="modal-parent">
            <div id="modal_ok_lost">
                <div class="modal-child modal-ok">
                    <div class="">
                        <div bp="flex margin-bottom--lg">
                            <div bp="fill" class="modal-txt">
                                <span class="icon-info middle padding-right"></span>Succes !
                            </div>
                            <div bp="fit">
                                <span class="icon-cross pointer" onclick="CloseModal('ok_lost');"></span>
                            </div>
                        </div>
                        <p>Si l'adresse email saisie est ratachée à un compte, un email contenant un lien de reinitialisation de votre mot de passe y a été envoyé.</p>
                    </div>
                </div>
            </div>
            <div id="modal_error_saisie">
                <div class="modal-child modal-error">
                    <div class="">
                        <div bp="flex margin-bottom--lg">
                            <div bp="fill" class="modal-txt">
                                <span class="icon-warning middle padding-right"></span>Erreur !
                            </div>
                            <div bp="fit">
                                <span class="icon-cross pointer" onclick="CloseModal('error_saisie');"></span>
                            </div>
                        </div>
                        <p>Merci de verifier votre saisie.</p>
                    </div>
                </div>
            </div>
        </div>

    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
    function OpenModal(Name) {
        $("#modal-parent").show();
        $("#modal_" + Name).show();
    }
     
    function CloseModal(Name) {
        $("#modal-parent").hide();
        $("#modal" + Name).hide();
    }
     
    $("#bt-email-lost").click(function(e) {
        e.stopPropagation();
        e.preventDefault();
        var email = $.trim($("#email-lost").val());
        if (email == "") {
            OpenModal('error_saisie');
        }
        if (IsEmail(email) == true) {
            // AJAX 
            /*$("#box-input").hide();*/
            OpenModal('ok_lost');
        } else {
            OpenModal('error_saisie');
        }
    });
    Mon problème est le suivant : C'est toujours la première div codée dans le html qui s affiche.
    Mes tests sont corrects (fonction IsEmail, longueur non nul... Tout est bon sauf que c est toujours la première div qui s affiche...

    J ai besoin de vos lumières car j ai beau tourner le problème dans tous les sens, je ne trouve pas la solution.

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 433
    Points : 4 923
    Points
    4 923
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#bt-email-lost").click(...)
    il est ou ce bouton ayant l'id "bt-email-lost" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var email = $.trim($("#email-lost").val());
    id="email-lost" n'existe pas dans ton code html aussi...

  3. #3
    Membre régulier
    Homme Profil pro
    pas grand chose
    Inscrit en
    Septembre 2018
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : pas grand chose
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 131
    Points : 73
    Points
    73
    Par défaut
    Merci d avoir pris le temps de me répondre.

    Le bouton en question est plus haut dans la page, dans un formulaire je ne l ai pas mis car il ne pose aucun problème, le traitement s effectue bien au click sur le bouton seul mon résultat n'est pas correct mais le traitement est opérant (test email, test pas vide...) c est simplement un pb d affichage donc je pense que ce n est pas utile. Je me trompe ?

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 433
    Points : 4 923
    Points
    4 923
    Par défaut
    Ton code n'est pas optimisé correctement, parce qu'il faut grouper tout les blocs d'erreurs dans une seule condition, et d'ajouter un style="display: none" aux modals et pas au div parent #modal-parent :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div id="modal-parent" >
          <div id="modal_ok_lost" style="display:none">....</div>
          <div id="modal_error_saisie" style="display:none">....</div>
    </div>

    Après essaies ce code :
    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
     
    function OpenModal(Name) {
    	$('#modal_ok_lost,#modal_error_saisie').hide();
    	$("#modal_" + Name).show();
    }
     
    function CloseModal(Name) {
    	$("#modal_" + Name).hide();
    }
     
    $("#bt-email-lost").click(function(e) {
    	e.stopPropagation();
    	e.preventDefault();
    	var email = $.trim($("#email-lost").val());
    	if (email == "" && !IsEmail(email)) {
    		OpenModal('error_saisie');
    	}else {
    		OpenModal('ok_lost');
    	}
    });

Discussions similaires

  1. Dialoguer simultanément sur une même page, ouverte plusieurs fois
    Par fabien_gz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/03/2016, 23h52
  2. [GD] Générer plusieurs images en PHP sur une seul page
    Par arnaudperfect dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/04/2012, 11h26
  3. affichage des données sur une seule page
    Par webdesign77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/03/2009, 23h23
  4. Regrouper plusieurs graphes sur une seule page
    Par Pur2000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2008, 11h53
  5. Mettre plusieurs graphiques sur une seule page
    Par 7heart dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 06/05/2008, 22h41

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