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 :

IE envoie le formulaire AVANT sa vérification!


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut IE envoie le formulaire AVANT sa vérification!
    Bonjour,
    Petit souci que je ne comprend pas avec IE (toutes versions):
    J'utilise javascript pour vérifier les champs d'un formulaire de contact.
    J'ai donc placé onsubmit="return verif()" dans la balise <form>.
    Allez savoir pourquoi, ça ne marche pas avec IE: la page php traitant le formulaire est appelée avant même la vérification, et le message est envoyé même vide (je n'ai pas encore préparé la vérification côté serveur ^^)!

    Je n'ai aucune piste...
    Indications supplémentaires:
    - la page en question contient du php donc porte l'extension .php
    - le doctype est xhtml 1.0 transitional

  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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    sans code ...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Pardon, je pensais que ça suffirait comme explication...

    la fonction javascript (extrait sur le champ pseudo, le reste est du même acabit):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function verif() {
    form=document.contact;
    if (form.pseudo.value == "") {
    alert ('erreur');
    return false;
    }
    else {
    return true;
    }
    }
    et le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="post" action="../mail.php" name="contact" id="contact" onsubmit="return verif();">
    <p><br />
           <label for="pseudo">Votre nom/pseudo :</label>
           <input type="text" name="pseudo" id="pseudo" size="20" maxlength="10"/><br /><br />
           <label for="email">Votre e-mail :</label>
           <input type="text" name="email" id="email" size="40" /><br /><br />
           <label for="message">Votre message :</label><br />
           <textarea name="message" id="message" rows="6" cols="50"></textarea><br /><br />
           <input type="submit" value="Envoyer"/>
           <input type="hidden" name="langue" value="fr/credits.php"/>
    </p>
    </form>
    Testé et approuvé sous FF, Opera, Safari et Chrome. Zéro pointé sur IE 6, 7 et 8.

  4. #4
    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 : 54
    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
    Répété un nombre incalculable de fois : ne jamais donner à des variables (surtout non déclarées avec var) des noms de propriétés existantes en JavaScript !

  5. #5
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    et une synatxe plus rigoureuse...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function verif() {
    myform=document.forms['contact'];
    if (myform.pseudo.value == "") {
    etc ...

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 66
    Points
    66
    Par défaut
    Je pense que cet exemple issue de la documentation microsoft pourrait t'aiguiller http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

  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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut

    en général c'est plutot la msdn microsoft qui renvoie chez nous ... ^^

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci pour votre rapidité! Je savais bien qu'il s'agissait d'un problème de rigueur, mais je ne savais pas où ^^
    Alors cette fois la fonction vérif() est bien lancée, et retourne false, mais il reste un problème: les autres actions (ici le message d'erreur) ne fonctionnent pas avec IE 7 et 8. Résultat: l'utilisateur clique sur "envoyer" et... il ne se passe plus rien du tout!

  9. #9
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    autres actions ?
    y'a d'autre code ?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Oui il y avait d'autre code, mais maintenant tout roule! La rigueur, y'a que ça de vrai! Merci pour votre rapidité en tout cas!

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    On peut voir le nouveau code ?

    C'est pour le voler et le revendre (ou t'aider, c'est comme tu préfères).

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Je sais pas combien vous en tirerez...
    Un autre truc tient: je répète plusieurs fois:
    erreur.style.display="block";
    return false;
    Je l'avais d'abord placé dans une fonction pour l'appeler quand nécessaire, mais rebelote: plus de return false avec IE... Du coup comme ça faisait pas 40 lignes je l'ai laissé comme ça.

    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
    function verif() {
    var myform=document.forms['contact'];
    var erreur=document.getElementById('erreur');
    var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
    if (myform.pseudo.value == "") {
    erreur.style.display="block";
    return false;
    } else if (myform.message.value == "") {
    erreur.style.display="block";
    return false;
    } else if (myform.email.value == "" || !regex.test(myform.email.value)) {
    erreur.style.display="block";
    return false;
    }
    else {
    erreur.style.display="none";
    return true;
    }
    }

  13. #13
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    Bah a ce moment là tu met toutes les conditions dans le même if. ça reviens strictement au même ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ((condition1) || (condition2) || (condition3)) {
       return false;
    }
    else {
       return true;
    }

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    C'est pas faux...

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

Discussions similaires

  1. vérification formulaire avant envoi
    Par kOrt3x dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 10/01/2011, 18h09
  2. vérification des champs d'un formulaire avant envoi
    Par fey dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 18/05/2007, 17h34
  3. Vérification avant l'envoi de formulaire
    Par navis84 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 10/05/2006, 14h01
  4. verrification avant envoi de formulaire
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/11/2005, 16h49
  5. [POO] Vérification d'un formulaire avant envoi
    Par KibitO dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/11/2005, 13h55

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