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 :

confirm() qui ne renvoie jamais true ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut confirm() qui ne renvoie jamais true ?
    Bonjour, j'ai plusieurs submit dans un formulaire, et souhaites ajouter un message de confirmation pour chaque sorte de submit.

    J'ai fait ceci :

    Cependant et je ne comprend pas pourquoi, (je ne sais pas encore debuguer en js), j'ai beau cliquer sur annuler ou fermer le message de confirmation, le formulaire s'exécute.

    J'en viens a me dire que quelque chose m'échappe mais je ne vois pas quoi.

    Si vous avez une idée, merci beaucoup.

    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
     
    <script type="text/javascript">
     
    // mes différent submits 
    xSA = document.getElementsByName("SupprimerAnnonce");
    xMA = document.getElementsByName("ModifierAnnonce");
    xd_l = document.getElementsByName("del_img");
     
     
    //boucle pour parcourir le tableau des 'submit SupprimerAnnonce'
    for( var x=0; x < xSA.length; x++ ) {
     
    //si le submit est cliqué, alors le message de confirmation apparait
    xSA[x].onclick = function(){
     
    // j'ai beau cliquer sur annuler, le submit() est envoyé
    if(confirm("Etes vous sur de vouloir supprimer l'annonce ?")){
    document.getElementById('SA').submit();
    }
    }
    }
     
     
    for( var x=0; x < xMA.length; x++ ) {
    xMA[x].onclick = function(){
        if(confirm("Etes vous sur de vouloir modifier l'annonce ?")){
            document.getElementById('MA').submit();
        }
    }
    }
     
    for( var x=0; x < xd_l.length; x++ ) {
    xd_l[x].onclick = function(){
        if(confirm("Etes vous sur de vouloir supprimer la photo ?")){
         document.getElementById('d_l').submit();
        }
     
    }
    }
     
    </script>
    Voilà une partie formulaire :

    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
     
    <form  id="modif_ann" method="post" action="index.php?page=Modification" enctype="multipart/form-data">
    <fieldset>
    <legend>Annonce n°<?php echo htmlentities($annonce['id_ann']); ?></legend>
     
     
    <div class="container_input">
    <input type="submit" id="MA" name="ModifierAnnonce" value="Modifier Annonce" />
    <input type="submit" id="SA" name="SupprimerAnnonce" value="Supprimer Annonce" />
    </div>
     
    <label for="tel">Tel</label>
    <input type ="text" name="tel" size="30" maxlength="40"
           value="<?php echo htmlentities($annonce['tel']); ?>"/>
    <br/>
     
    </fieldset>
     
    <?php   if (htmlentities($annonce['nbr_img']) > 0) {
    ?>
     
    <label for="image1">Photo principal:</label>
    <img src="../img/pic/1/<?php echo htmlentities($annonce['url_img']); ?>.jpg"  alt="aperçu de la photo 1" />
    <br/>
    <input type="file" class="btn_upload" name="image1"/>
    <input type="submit" id="MA" name="ModifierAnnonce" value="changer la photo principal"/>
    <input type="submit" id="d_l" name="del_img" value="supprimer la photo principal"/>
    <br/>
    </fieldset>
    <?php
    }
    ?>
     
    <div class="container_input">
     
    <input type="submit" id="MA" name="ModifierAnnonce" value="Modifier Annonce" />
     
    <input type="submit" id ="SA" name="SupprimerAnnonce" value="Supprimer Annonce" />
     
    </div>
    </form>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('SA').submit();
    fait référence au bouton submit et non à la FORM

    Pour annuler l'envoi d'un formulaire, il faut mettre un return false sur l'événement onsubmit de la FORM.

    Revoir la structure du document qui ne semble pas valide, mais cela est accessoire...

  3. #3
    Expert confirmé
    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
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Drone Voir le message
    (je ne sais pas encore debuguer en js)
    >>> urgent <<<

  4. #4
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    >>NoSmoking

    Merci ! En fait le simple else {return false} à fonctionné
    En effet je ne passe pas par un onsubmit car je me dis et vous allez peut être me prouver le contraire que dans l'intitulé du form, le onsubmit ne sera égal qu'a une seul fonction, donc comment faire pour savoir si j'ai cliqué sur tel bouton, et suivant le bouton, afficher le message approprié ?

    Enfin voilà ma solution corrigée :

    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
     
    <script type="text/javascript">
    xSA = document.getElementsByName("SupprimerAnnonce");
    for( var x=0; x < xSA.length; x++ ) {
    xSA[x].onclick = function(){
        if(confirm("Etes vous sur de vouloir supprimer l'annonce ?")){
         document.getElementById('SA').submit();
        }
        else {
             return false;
         }
    }
    }
    xMA = document.getElementsByName("ModifierAnnonce");
    for( var x=0; x < xMA.length; x++ ) {
    xMA[x].onclick = function(){
        if(confirm("Etes vous sur de vouloir modifier l'annonce ?")){
            document.getElementById('MA').submit();
        }
        else {
            return false;
        }
    }
    }
     
    xd_l = document.getElementsByName("del_img");
    for( var x=0; x < xd_l.length; x++ ) {
    xd_l[x].onclick = function(){
        if(confirm("Etes vous sur de vouloir supprimer la photo ?")){
         document.getElementById('d_l').submit();
         }
         else {
             return false;
         }
    }
    }
    </script>
    J'aimerais savoir ce qui ne vous parait pas valide dans la structure, même si c'est accessoire, cela m'intéresse fortement merci .

    >>RomainVALERI

    Merci pour ce lien, je possède Firebug, et n'ayant pas eu encore besoin de deboguer du JS je ne me suis pas encore servis de la partie script, mais contrairement à ce que je pensais (j'allais chercher un tuto) le fonctionnement est simple a comprendre, merci .

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    j'ai noté un </fieldset> sans ouverture de balise <fieldset>

  6. #6
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Ah d'accord, merci

    En fait cette erreur est due au fait que je n'ai voulu mettre que la partie 'intéressante' du formulaire pour mon problème, et donc cette balise ouvrante à été omise dans mes copiés collés mais elle existe bien dans mon formulaire ^^.

    Merci, je clôture ce topic, l'esprit en paix .

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

Discussions similaires

  1. Requete qui ne renvoie pas de résultat
    Par bruno782 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/08/2019, 13h39
  2. Fonction qui ne renvoie rien
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 18h12
  3. [PostgreSql] requête simple qui ne renvoie rien ?
    Par tuxout dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/08/2006, 14h06
  4. [csv]import qui ne termine jamais
    Par banzzai dans le forum Requêtes
    Réponses: 6
    Dernier message: 14/06/2006, 21h07
  5. Réponses: 2
    Dernier message: 16/04/2005, 20h24

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