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 :

gestionnaire onsubmit


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut gestionnaire onsubmit
    Hello!

    Je rencontre un petit problème que je ne m'explique pas...
    Alors me voici avec une nouvelle question...
    Pourquoi le code suivant ne fonctionne pas?

    Explication du problème : Le code javascript devrait empêcher l'envoi du formulaire mais celui-ci est bien "submité" malgré la présence du retour false de la fonction.

    Déjà merci de votre aide!

    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
     
    <html>
    <head>
    	<script language="javascript" type="text/javascript">
    		function addListener(element, baseName, handler){
    			if (element.addEventListener)
    				element.addEventListener(baseName,handler,false);
    			else if(element.attachEvent)
    				element.attachEvent("on"+baseName, handler);
    		}
    		function initEventHandlers(){
    			addListener(document.forms["myform"],"submit",function(){
    				if (document.getElementById("c1").value != "a")
    					return false;
    			});
    		}
    	</script>
    </head>
    <body>
    	<form method="post" name="myform" action="file.php">
    		<input type="text" name="c1" id="c1" value="" />
    		<input type="submit" value="send"/>
    	</form>
    	<script language="javascript" type="text/javascript">
    		addListener(window,"load",initEventHandlers);
    	</script>
    </body>
    </html>

  2. #2
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Bon! j'ai un début de piste avec cet article mais je ne parviens toujours pas à bloquer l'envoi du formulaire.

    Je reste toujours preneur d'une idée!!!

  3. #3
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Bon ben j'ai trouvé une solution mais je dois avouer que je ne saisi pas vraiment le pourquoi du problème. Donc si quelqu'un passe par ici et qu'il souhaite partager ses connaissances, je serai attentif!

    Pour les autres, voici ma solution.

    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
     
    <html>
    <head>
    	<script language="javascript" type="text/javascript">
    		function addListener(element, baseName, handler){
    			if (element.addEventListener)
    				element.addEventListener(baseName,handler,false);
    			else if(element.attachEvent)
    				element.attachEvent("on"+baseName, handler);
    		}
    		function bloque_form(){
    			this.onsubmit = function(){return false;};
    		}
    		function initEventHandlers(){
    			addListener(document.forms["myform"],"submit",function(){
    				if (document.getElementById("c1").value != "a")
    					bloque_form();
    			});
    		}
    	</script>
    </head>
    <body>
    	<form method="post" name="myform" action="file.php">
    		<input type="text" name="c1" id="c1" value="" />
    		<input type="submit" value="send"/>
    	</form>
    	<script language="javascript" type="text/javascript">
    		addListener(window,"load",initEventHandlers);
    	</script>
    </body>
    </html>
    A bientôt!

    ++

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    n'eût il par été plsu simple jsute de modifier le onsubmit du form de return false à return true ?

  5. #5
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Oui! mais l'exemple donné a été simplifié!

    Dans mon développement le PHP, HTML, CSS et le javascript sont dans des fichiers distincts -> pas de Js dans mon template.

    ;-)

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

Discussions similaires

  1. Ouvrir le gestionnaire d'impression
    Par MagicManu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 25/10/2004, 13h38
  2. Perte de gestionnaire d'événements dans une fenêtre
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 15
    Dernier message: 23/08/2004, 20h14
  3. gestionnaire des taches XP
    Par tibyann dans le forum DirectX
    Réponses: 1
    Dernier message: 08/07/2004, 11h31
  4. gestionnaire de memoire
    Par elone dans le forum C
    Réponses: 2
    Dernier message: 23/01/2003, 00h31
  5. [VB6] Gestionnaire des tache de windows 2000 avec VB6
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h21

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