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 :

événement onsubmit sur un formulaire.


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut événement onsubmit sur un formulaire.
    Bonjour,

    Cela fait plusieurs heures que je tourne en rond et que je n'arrive pas à comprendre pourquoi mon code ne s'exécute pas comme je le souhaite. J'ai un formulaire avec une fonction de validation des champs en js que j'appelle sur un bouton de type submit. Normalement il ne devrait pas lancer la méthode action de mon formulaire tant que certains sont vides. Et bien il le fait. J'ai vraiment besoin d'un regard extérieur pour m'aider car je ne vois plus rien et tout me semble correct. Or,
    Voici ma page html :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>Formulaire de saisie</title><!-- titre du site et de la page --> 
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<link rel="stylesheet" media="screen" type="text/css" href="formdvd.css" />
    	<script type="text/javascript" src="formdvdtheque.js"></script>
     </head>
    <body onload="document.forms['saisiedvd'].elements['titre'].focus()">
    <div id="page">
    	<div id="affiche"><div id="laregle"><img src="image/laregledujeusanstitre.jpg" alt="Le trèfle" /></div></div><!-- une image positionnée en absolu -->
    	<div id="en_tete"><div id="labanniere"><img src="image/banniere.jpg" alt="Le bandeau" /></div></div>
    	<h2>Saisie de la DVDthèque</h2>
    	<div id="corps">
    		<p id="premier_element"></p>
    		<form method="post" action="saisiebase.php" id="saisiedvd" onsubmit="return verifform(this)" onreset="return reaffiche();">
    		<p>
    			<label for="titre">Titre du film :</label>
    			<input type="text" name="titre" size="50" maxlength ="50" id="titre" onblur="veriftitre(this);" />
    		</p>
    		<p>
    			<label for="realisateur">Réalisateur :</label>
    			<input type="text" name="realisateur" size="50" maxlength="50" id="realisateur" onblur="verifreal(this);" />
    		</p>
    		<p>
    			<label for="annee">Année :</label>
    			<input type="text" name="annee" size="4" maxlength="4" id="annee" onblur="verifan(this);" />
    		</p>
    		<p>
    			Avez-vous aimé ?<br />
    			<input type="radio" name="ava" size="" id="oui" value="" checked="checked" />
    			<label for="oui">Oui</label>
    			<input type="radio" name="ava" size="" id="non" value="" />
    			<label for="non">Non</label>
    			<input type="radio" name="ava" size="" id="bof" value="" />
    			<label for="bof">Bof !</label><br />
    		</p>
    		<p>
    			<label for="avis">Votre avis sur le film :</label><br />
    			<textarea name="avis" id="avis" rows="3" cols="50" onfocus="this.value='';">Vos commentaires ici</textarea>
    		</p>
    		<p>
    			<label for="pseudo">Votre pseudo :</label>
    			<input type="text" name="pseudo" size="20" maxlength="20" id="pseudo" onblur="verifpseudo(this;)" />
    		</p>
    		<p id="validation">
    			<input type="submit" value="Envoyer" />
    			<input type="reset" value="Annuler" />
    		</p>
    		</form>
    		<p id="dernier_element"></p>
    	</div>
    	<div id="pied_de_page">
    		<p> Conçu et réalisé par Philippe Idlas. 2010.<br />
    		N'hésitez pas à <a href="mailto:idlas.philippe@neuf.fr">me contacter</a> si vous voulez un avis plus personnel sur un film en particulier !</p>
    	</div>    
    </div>
    </body>
    </html>

  2. #2
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return verifform(this)"
    mais encore ... ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    tu as tout simplement une erreur dans ton code JS, et donc ton formulaire se retrouve envoyé, la solution pour tester ton javascript est de bloquer le action.

    Pour ça en général je met simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="javascript:;">
    si je veux tester que l'envoi s'effectue bien je mets un console.log si j'ai firebug
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="javascript:console.log('form envoyé');">
    une fois que tu as finis et que tu es OK tu remets l'ancien action

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    +1 duke mais là on n'a pas vus une virgule du script de verifacation
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Citation Envoyé par pidlas Voir le message
    Bonjour,
    J'ai vraiment besoin d'un regard extérieur
    euh... j'ai beau regarder

  6. #6
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    ben regarde dehors
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    the cars hiss by my window...
    but I miss the point of view

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut Le script de vérification.
    Bonjour,

    Voici donc mon script de vérification :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    function surligne(champ, erreur){
    	if(erreur) champ.style.backgroundColor = "#fba";
    	else champ.style.backgroundColor = "";
    }
     
    function veriftitre(champ){
    	if((champ.value.length == '') || (champ.value.length > 50)){
    		surligne(champ, true);
    		return false;
    	}
    	else{
    		surligne(champ, false);
    		return true;
    	}
    }
     
    function verifreal(champ){
    	if((champ.value.length == '') || (champ.value.length > 50)){
    		surligne(champ, true);
    		return false;
    	}
    	else{
    		surligne(champ, false);
    		return true;
    	}
    }
     
    function verifan(champ){
    	if((champ.value.length !=4) || (champ.value < 1900) || (champ.value > 2010)){
    		surligne(champ, true);
    		return false;
    	}
    	else{
    		surligne(champ, false);
    		return true;
    	}
    }
     
    function verifpseudo(champ){
    	if((champ.value.length < 5) || (champ.value.length > 20)){
    		surligne(champ, true);
    		return false;
    	}
    	else{
    		surligne(champ, false);
    		return true;
    	}
    }
     
    function verifform(f){
       var titreok = veriftitre(f.titre);
    	var realok = verifreal(f.realisateur);
    	var anok = verifan(f.annee);
    	var avaok = verifava(f.ava);
    	var pseudook = verifpseudo(f.pseudo);
     
       if(titreok && realok && anok && avaok && pseudook){
    		return true;
    	}
       else
       {
          alert("Veuillez remplir correctement tous les champs");
          return false;
       }
    }
     
    function reaffiche(){
    	window.open("formdvdtheque.php");
    }

  9. #9
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Ce qui est en rouge est de trop:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((champ.value.length == '')

  10. #10
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Merci pour cela.
    Par contre j'ai tj le même pb. A savoir le formulaire est envoyé même si tous les champs ne sont pas remplis.

  12. #12
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    même si tous les champs ne sont pas remplis
    ben si tu les testais tous ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut
    Citation Envoyé par dukej Voir le message
    tu as tout simplement une erreur dans ton code JS, et donc ton formulaire se retrouve envoyé, la solution pour tester ton javascript est de bloquer le action.

    Pour ça en général je met simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="javascript:;">
    si je veux tester que l'envoi s'effectue bien je mets un console.log si j'ai firebug
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="javascript:console.log('form envoyé');">
    une fois que tu as finis et que tu es OK tu remets l'ancien action
    Bien. J'ai donc remplacé le lien dans action et le formulaire est bien envoyé alors que tous les champs ne sont pas remplis. Dans la console de Firebug apparait bien le message 'form envoyé'. Ne maitrisant pas Firebug je ne vois pas comment faire pour l'utiliser à trouver mon bug.
    Merci pour vos conseils pour me sortir de ce problème.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ben si tu les testais tous ...
    Merci pour ta réponse.
    C ce que je fais. Je teste tous les champs sur un onblur et ensuite je valide le formulaire sur un onsubmit. J'expérimente plusieurs pbs. D'abord je n'arrive pas à faire fonctionner le focus(). Je m'explique : dans mon js, si le champ titre est vide, je change la couleur du fond et je redonne le focus à ce champ. Eh bien, si je pousse TAB sans mettre un titre le fond change bien de couleur MAIS le focus est passé au champ suivant (en l'occurence réalisateur). Ensuite, deuxième pb, si je pousse sur le bouton envoyer de type submit, le formulaire est envoyé même si les champs sont vide alors que je teste spécifiquement cela dans le onsubmit en testant la valeur true ou false des champs. Voilà mes deux pbs qui m'empêchent d'avancer dans mon petit dév.

  15. #15
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Vute fais bien fait j'ai vu ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onblur="verifpseudo(this;)

  16. #16
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    ha en effet ...
    super lourd une fonction pour chaque ..
    pourquoi ne pas tou faire en une seule fonction ?
    un peu de lecture :
    http://www.developpez.net/forums/d55...on-formulaire/


    entre deux teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function verifform(f){
       var titreok = veriftitre(f.titre);
     alert(titreok)
    	var realok = verifreal(f.realisateur);
     alert(realok)
    	var anok = verifan(f.annee);
     alert(anok)	
            var avaok = verifava(f.ava);
     alert(avak)
    	var pseudook = verifpseudo(f.pseudo);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Par défaut
    Citation Envoyé par vermine Voir le message
    Vute fais bien fait j'ai vu ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onblur="verifpseudo(this;)
    Merci pour cela mais le pb persiste tj. Le formulaire est passé au lien décrit dans action alors qu'il ne devrait pas!

  18. #18
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    et les alertes retournent quoi ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Il y a un problème au niveau de ava. verifava n'existe pas.

  20. #20
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    d'où l'utilité de consulter la console de debugage ou de mettre des alertes !!!
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2010] Ordre des événements sur un formulaire
    Par pyloupylou dans le forum IHM
    Réponses: 4
    Dernier message: 28/07/2014, 10h33
  2. gestion popup et fenêtre parente sur événement onSubmit
    Par imagonem dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/11/2009, 18h43
  3. Liste de tous les évènements possibles sur un formulaire
    Par Zhebulon dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/06/2007, 08h54
  4. Réponses: 4
    Dernier message: 22/09/2006, 14h29
  5. pb avec des clés sur un formulaire
    Par marie253 dans le forum Bases de données
    Réponses: 7
    Dernier message: 17/06/2004, 13h53

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