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 :

Intercepter l'événement onsubmit


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Par défaut Intercepter l'événement onsubmit
    Bonjour,
    Soit un formulaire classique avec un button submit.
    Je voudrais lorsqu'on clique dessus, qu'une fonction de son choix soit appelée.
    Voila le 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
    <html><head><title>Test</title></head> 
    <script language="JavaScript" type="text/javascript">
      var condition_verifiee = false;
     
      function testSubmit(id_formulaire)
      {
        if (condition_verifiee)
          document.getElementById(id_formulaire).submit();
        else alert("votre formulaire n'a pas été envoyé");
      }
     
      document.getElementById('formu').onsubmit = function(){testSubmit('formu');}
     
    </script>
    <body>
      <form id="formu">
        <input type="text" />
        <input type="submit" />
      </form>
    </body></html>

    Comment faire pour que ce code marche (à savoir afficher une alerte) sans que le code HTML soit changé (uniquement le javascript) ?

    Merci

  2. #2
    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,
    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
    <html><head><title>Test</title></head>
    <script language="JavaScript" type="text/javascript">
      var condition_verifiee = false;
    
      function testSubmit(id_formulaire)
      {
        if (condition_verifiee)
          document.getElementById(id_formulaire).submit();
        else alert("votre formulaire n'a pas été envoyé");
      }
    </script>
    <body onload="document.getElementById('formu').onsubmit = function(){testSubmit('formu');}">
      <form id="formu">
        <input type="text" />
        <input type="submit" />
      </form>
    </body></html>
    Tel que tu l'avais fait, "formu" n'existait pas au moment de l'exécution du code.
    Avec onload, tu es sûr que les éléments de la page sont déjà chargés ...

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Par défaut
    ok...
    Ca marche presque, il y a bien l'alerte, sauf que le formulaire est quand même envoyé.
    Comment faire pour bloquer cet envoi ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Par défaut
    Ca y est, j'ai trouvé
    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
    <html><head><title>Test</title></head>
    <script language="JavaScript" type="text/javascript">
      var condition_verifiee = false;
     
      function testSubmit(id_formulaire)
      {
        if (condition_verifiee)
          document.getElementById(id_formulaire).submit();
        else
        { 
          alert("votre formulaire n'a pas été envoyé"); 
          return false; 
        }
        return true;
      }
    </script>
    <body onload="document.getElementById('formu').onsubmit = function(){return testSubmit('formu');}">
      <form id="formu">
        <input type="text" />
        <input type="submit" />
      </form>
    </body></html>
    Merci

  5. #5
    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 vincent68
    Comment faire pour bloquer cet envoi ?
    Encore plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      function testSubmit(id_formulaire)
      {
        if (condition_verifiee)
           return true;
        else
        { 
          alert("votre formulaire n'a pas été envoyé"); 
          return false; 
        }
      }


    EDIT : c'est le principe de fonctionnement du onsubmit : s'il renvoie true => submit automatique, sinon => submit annulé ...

    A+

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

Discussions similaires

  1. Intercepter l'événement onsubmit
    Par Naceur84 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2012, 16h55
  2. [Xlib] Intercepter les évènements
    Par Laurent Gomila dans le forum Linux
    Réponses: 67
    Dernier message: 25/07/2007, 11h00
  3. Réponses: 3
    Dernier message: 11/03/2007, 09h03
  4. Interception d'événements COM par vbscript
    Par fabrice2 dans le forum Windows
    Réponses: 1
    Dernier message: 27/02/2007, 17h24
  5. [fenetre à onglets] Intercepter les événements des panels
    Par Regis.C dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 14/04/2005, 10h50

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