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 :

Si bouton cliqué = ok sinon alert


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut Si bouton cliqué = ok sinon alert
    Bonjour,

    Comme indiqué dans le titre je souhaiterai faire ceci : si bouton cliqué = ok sinon alert

    Je ne comprend pas pourquoi ce code ne fonctionne pas
    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
     
    <form action="" method="post">
    <textarea name="test" cols="100" rows="7"></textarea><br />
    <input name="" type="submit" id="envoyer" class="submit" onclick="Clique()" />
    </form> 
    <script type="text/javascript">
    var val = 0;
     
    function Clique() {
         var val = 1;
         /*alert(val);*/
    }
     
     
    if (val != 0){
        alert('Bouton cliqué');
     
    }
    else {
        window.onbeforeunload = function(e){
           return 'En quittant cette page, vous risquez de perdre des données non enregistrées.';
        }        
    }
    </script>
    Merci d'avance de votre aide !
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    si l'on analyse ton code comme il le sera au chargement de ta page on obtient
    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
    // déclaration d'une variable
    var val = 0;
    // déclaration d'une fonction 
    function Clique() {
         var val = 1;
         /*alert(val);*/
    }
    //-- fin de la fonction
     
    // exécution du code qui suit 
    if (val != 0){    // on ne rentrera jamais dans cette condition
        alert('Bouton cliqué');
    }
    else {
        window.onbeforeunload = function(e){
           return 'En quittant cette page, vous risquez de perdre des données non enregistrées.';
        }        
    }
    il faut donc que tu changes ton approche.

  3. #3
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Merci mais ...
    J'avais bien constater que je ne rentrai jamais dans la condition val != 0
    J'avais aussi bien constater qu'il me faudrait un changement d'approche

    D'où ma demande d'aide sur ce forum.

    Peux tu me donner un début d'explication ?

    PS : Je touche pas une bille en javascript
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    PS : Je touche pas une bille en javascript
    en s'entrainant un peu on y arrive facilement, dans ton cas il s'agit plus d'une question de logique

    Une façon d'y arriver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // flag sur INPUT submit
    var bSubmit = false;
    function Clique() {
      // OK! le bouton a été appuyé on bascule le flag sur TRUE
      bSubmit = true;
    }
    // déclaration de la fonction sur beforeunload
    window.onbeforeunload = function(){
      // On quitte sans avoir cliqué le button => bSubmit = false dans ce cas
      if( !bSubmit){
        return 'En quittant cette page, vous risquez de perdre des données non enregistrées.';
      }
    }

  5. #5
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Tout d'abord, merci de ta patiente. J'imagine que tu dois répondre à beaucoup de billes comme moi !
    Ton code marche tip top.
    Par contre, je ne comprend pas pourquoi la variable de la fonction Clique est mise à jour dans ton code et pas dans le mien ?
    Est ce le fait d'avoir mi la condition dans onbeforeunload ?
    Si oui, pourquoi se met-elle à jour dans une fonction et pas dans mon code ?
    Bon, si tu as le temps pour une petite explication ...
    Encore merci ....
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    dans ton code tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function Clique() {
         var val = 1;
         /*alert(val);*/
    }
    var signifie que tu définie une variable locale.

    dans le sien il fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function Clique() {
      // OK! le bouton a été appuyé on bascule le flag sur TRUE
      bSubmit = true;
    }
    ici pas de var bSubmit est une variable définie dans le contexte global la fonction change sa valeur sans crer de varriable locale.
    bSubmit est donc mis à jour
    A+JYT

  7. #7
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Ok, dans son code c'est une variable global.
    Donc, si je déclare une variable avec var, c'est un locale et sans var c'est un globale.
    C'est bien ça ? Si oui, je ne savais pas
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    C'est bien ça ? Si oui, je ne savais pas
    Oui et il est vrai que j'aurais aussi pu pointer cette "maladresse".

    Si tu veux faire plus court tu peux également te passer de la fonction Clique en mettant directement bSubmit=false dans le onclick de l'INPUT et là il y a lourd à parier que tu n'aurais pas fait cette erreur de déclaration, mais le problème de logique aurait été le même.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="" type="submit" id="envoyer" class="submit" onclick="bSumit=true" />

  9. #9
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Mille mercis pour vos explications !
    Écoute, sinon ta langue te perdra (proverbe Navajo)

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

Discussions similaires

  1. affichage formulaire selon bouton cliqué
    Par john123 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 15/04/2007, 12h43
  2. [JButton] récupération valeur bouton cliqué
    Par Adren dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/10/2006, 14h09
  3. [FLASH 8] Garder un bouton cliqué
    Par iceman2001 dans le forum Flash
    Réponses: 11
    Dernier message: 29/06/2006, 11h08
  4. Réponses: 7
    Dernier message: 15/06/2006, 22h18
  5. changer image lorsque bouton cliqué
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/11/2004, 12h43

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