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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    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 : 496
    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 !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    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 éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    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 : 496
    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

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    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 éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    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 : 496
    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 ....

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    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

+ 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