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 :

Validation de formulaire


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Validation de formulaire
    Bonjour à tous,

    J'ai le problème suivant :
    - Dans une page html, j'ai crée un formulaire avec plusieurs champs input. la méthode d'envoi des données est POST. Au moment de valider, je lance une fonction javascipt qui effectue différentes vérification sur les champs du formulaire avant d'afficher la page de vérification "profil_verification.php".
    - Dans cette page de vérification, je veux récupérer les valeurs des champs input. Pour cela j'utilise la fonction $_POST. Sauf que là, je ne récupère rien ! Les variables ne sont pas envoyé à la page profil_verification.php.

    Voici la déclaration du formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="formulaire_inscription" action="javascript:validation_formulaire()" method="post">
    <input name="" type="submit"><input name="" type="reset">
    </form>

    Voici la déclaration de la fonction validation_formulaire()" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function validation_formulaire(){
    	var valide=true;
    	if (valide==true) {window.location.replace('profil_verification.php')};
    }
    J'ai fait un test en remplaçant dans le champ action du formulaire l'appelle à la fonction par le nom de la page profil_verification.php. Et là, je récupère bien mais variable.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par eppo81 Voir le message
    Les variables ne sont pas envoyé à la page profil_verification.php.
    C'est normal car tu utilises location.replace. Les variables ne sont envoyées que lorsque c'est le formulaire qui est soumis. Et, problème, tu as mis un bout de code JS dans l'attribut action, donc tu ne peux pas soumettre le formulaire.

    La bonne façon de faire, c'est d'intercepter l'évènement submit du formulaire, et l'annuler si besoin.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form id="formulaire_inscription" action="profil_verification.php" method="POST">
       ...
       <input type="sumbit">
       <input type="reset">
    </form>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function validation_formulaire(event) {
       var valide = true;
     
       if (valide === false) {
          event.preventDefault(); // annule la soumission
       }
    }
     
    document.getElementById("formulaire_inscription").addEventListener("submit", validation_formulaire);
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci Watilin pour ta réponse.

    J'ai modifié mon code HTML pour rajouter la balise id :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form id="formulaire_inscription" action="profil_verification.php" method="POST">
        <input name="" type="submit"><input name="" type="reset">
    </form>

    Et j'ai copié dans mon fichier Javascipt ton code (en rajoutant deux alerts() ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function validation_formulaire(event) {
    	var valide = true;
    	alert("ok");
    	if (valide == false) {
    		alert("ko");
    		event.preventDefault(); // annule la soumission
    	}
    }
    document.getElementById("formulaire_inscription").addEventListener("submit",validation_formulaire);
    Lors de l'appuis sur le bouton de validation du formulaire, la page profil_verification.php s'affiche bien mais la fonction de validation n'est pas appelé car aucune des deux alertes ne s'affiche.

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Je te conseille d'utiliser console.log à la place de alert. Les messages s'affichent successivement dans la console (F12) et tu n'as pas besoin de cliquer pour que le script continue.

    As-tu bien utilisé addEventListener ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par eppo81
    Et j'ai copié dans mon fichier Javascipt ton code
    A quel endroit as-tu ajouté ce code ?
    Parce que si tu le mets avant la balise du formulaire, ça risque pas de marcher puisque document.getElementById("formulaire_inscription") n'existe pas encore.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.

    Pourquoi faire simple quand on peut faire compliqué ?...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM method="POST" action="profil_verification.php" onsubmit="return validation_formulaire()">
    Votre transaction profil_verification.php sera soumise SSI (si et seulement si) votre JS validation_formulaire retourne TRUE.

    Quant à votre fonction JS de verification :

    - Elle vérifie vos # inputs en séquence et retourne FALSE dès qu'une erreur de syntaxe est détectée.
    - Elle retourne TRUE si il n'y a aucune erreur.

    Less is more...

    PS : Il serait utile de prévoir dans votre page une zone <span id="erreur_detectee"> qui afficherait l'erreur pour l'input concerné.

  7. #7
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    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 !

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour Space.

    C'est bien vu !... Je viens de corriger à l'instant. Bonne journée.

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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