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érif de formulaire : marche pas !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut Vérif de formulaire : marche pas !
    Bonjour à tous,

    Je refais un formulaire de contact avec captchat et comme je suis nul en JS, je réclame votre indulgence !

    Le test sur le captchat se fait bien, l'ortho du mail également.

    Le prb est que si j'arrive à vérifier le mail et les champs, il n'y a plus aucune vérification sauf le captchat, qui est indépendant.

    Je vous mets le code, vous y verrez plus clair :
    Script mis entre les Head :
    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
    <script language="JavaScript">
    <!--
    function verification() 
    {
       adresse = document.form1.email.value;
       var place = adresse.indexOf("@",1);
       var point = adresse.indexOf(".",place+1);
       if ((place > -1)&&(adresse.length >2)&&(point > 1))
            {
          return true;
           }
       else {
          alert('Adresse e-mail non valide !');
           return false;
            }
    		{
     
        if(document.getElementById('nom').value == ""){
            alert ('Vous avez oublié de saisir un champ!!!!');
            return false;
            }
    /*
     
        if(document.getElementById('sujet').value == ""){
            alert ('Vous avez oublié de saisir un champ!!!!');
            return false;
            }
     
        if(document.getElementById('message').value == ""){
            alert ('Vous avez oublié de saisir un champ!!!!');
            return false;
            }
    */
    }
    //-->
    </script>
    Script mis entre les Body :
    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
    <form name="form1" action="verifier.php" method="post" onsubmit="return verification()">
    <table border="1" align="center" cellpadding="0" cellspacing="10">
      <tr>
        <td align="right">Nom *</td>
        <td><input name="nom" id="nom" type="text" size="45"></td>
      </tr>
      <tr>
        <td align="right">e-Mail* </td>
        <td><input name="email" type="text" size="45"></td>
      </tr>
    <tr><td>&nbsp;</td></tr>
      <tr>
        <td align="right">Sujet *</td>
        <td><input name="sujet" id="sujet" type="text" size="45"></td>
      </tr>
      <tr>
    <tr><td>&nbsp;</td></tr>
        <td align="right" valign="top">Message *</td>
        <td><textarea name="Message" id="message" cols="40" rows="4"></textarea></td>
      </tr>
    <tr><td>&nbsp;</td></tr>
      <tr>
    	<td align="right" valign="top">
            Anti-spam <br><br>
    	Recopiez ces 5 lettres ici
        </td>
     
    	<td valign="top">
    	 <img src="cryptographp.php"><br>
    	 <input class=champtext name="code" type="text" size="17"><br><br>
    	 <input class=champtext type="submit" name="Submit" value="Envoyer"> 
         <input type="reset" value="Annuler">
        <td>
     
      </tr>
    </table>
    </form>
    Je ne vois vraiment pas d'où ça peut venir. Pourtant, je pense avoir mis les bonnes syntaxes.

    Est-ce que qq pourrait m'aider ?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Pour tester la validité d'un mail :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var reg1 = /^[a-z0-9\-_\.]+@[a-z0-9\-_\.]+\.[a-z]{2,5}$/i;
    if(email.match(reg1)){
    ...
    }

    Je suis pas certain de document.getElementById('nom').value, utilise plutôt document.form1.nom.value

    Pour débugger, fait plutôt :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="alert(verification()); return false;"

  3. #3
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par d-Rek Voir le message
    Pour tester la validité d'un mail :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var reg1 = /^[a-z0-9\-_\.]+@[a-z0-9\-_\.]+\.[a-z]{2,5}$/i;
    if(email.match(reg1)){
    ...
    }

    Je suis pas certain de document.getElementById('nom').value, utilise plutôt document.form1.nom.value

    Pour débugger, fait plutôt :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="alert(verification()); return false;"
    Bon, pour le mail, j'ai rien changé pour l'instant puisque c'est OK. Et puis, comme je l'ai dit, je suis nul en JS. De ce fait, je n'ose pas trop m'aventurer sans savoir ce que je dois faire !
    Par contre, pour savoir si un champs a été saisi, j'ai fait comme tu as dis et le résultat est le même, il n'y a pas de vérif. des champs.
    C'est bien comme ça qu'il fallait faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(document.form1.nom.value == "")
           alert ('Vous avez oublié de saisir le champ "Nom" !!!!');
           }
    C'est énervant quand ça marche pas. Grrrr!!!

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Par défaut
    salut,

    tu as juste ouvert une parenthese en trop ^^

    else {
    alert('Adresse e-mail non valide !');
    return false;
    }
    {

    if(document.getElementById('nom').value == ""){
    alert ('Vous avez oublié de saisir un champ!!!!');
    return false;
    }

  5. #5
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par jln13 Voir le message
    salut,

    tu as juste ouvert une parenthese en trop ^^
    Oui, je l'avais vu, mais ça marche toujours pas !!!!

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Par défaut
    Salut,

    voyons si j'ai bien compris ton pb ..
    Tu mets ca :
    if ((place > -1)&&(adresse.length >2)&&(point > 1))
    {
    return true;
    }
    else {
    alert('Adresse e-mail non valide !');
    return false;
    }
    // autres tests ....
    Donc :
    - dans le cas ou ton mail est valide : tu sors "return true"
    - dans le cas ou le mail n'est pas valide : tu sors "return false"

    Donc tu depasse jamais ces deux tests... Du coup ta verification des champs marche mais c'est juste que tu ne peux pas arriver a eux avec ton code...

  7. #7
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par jln13 Voir le message
    Salut,

    voyons si j'ai bien compris ton pb ..
    Tu mets ca :
    ....
    .....

    Donc :
    - dans le cas ou ton mail est valide : tu sors "return true"
    - dans le cas ou le mail n'est pas valide : tu sors "return false"

    Donc tu depasse jamais ces deux tests... Du coup ta verification des champs marche mais c'est juste que tu ne peux pas arriver a eux avec ton code...
    C'est logique ce que tu dis !
    Mais je dois faire quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
       adresse = document.form1.email.value;
       var place = adresse.indexOf("@",1);
       var point = adresse.indexOf(".",place+1);
       if ((place > -1)&&(adresse.length >2)&&(point > 1)){
          return true;
          }
       else {
          alert('Adresse e-mail non valide !');
          return false;
          }
    ...
    Donc, ce serait le "return false" qui bloquerait la poursuite de la vérification ?

    Mais si je l'enlève (j'ai essayé), is no good ! Je teste les autres champs (boite de msg de js), mais ça envoi quand même !!!!

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Par défaut
    Tu dois faire un choix.

    Soit tu decides de t'arreter a la premiere erreur :
    => des que tu rencontres une erreur tu renvoies false. Si l'utilisateur fait plusieurs erreurs de saisie tu n'afficheras que la premiere erreur dans ton message.

    Soit tu decides d'afficher toutes les erreurs :
    => dans ce cas tu dois utiliser un booleen que tu met a false des que tu rencontre une erreur et des que tu rencontre une erreur tu la stocke dans une liste d'erreurs.

    Dans tous les cas, il ne faut pas que tu renvoies true quand le test est valide. Tu renvoies true a la fin de ta fonction si ton booleen indique que tout va bien.

    En gros tu peux adapter de cette maniere :
    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
     
     
    <!--
    function verification() 
    {
    	var bool = true;
     
    	adresse = document.form1.email.value;
    	var place = adresse.indexOf("@",1);
    	var point = adresse.indexOf(".",place+1);
    	if (!((place > -1)&&(adresse.length >2)&&(point > 1))) {
    		bool = false;
    		alert('Adresse e-mail non valide !');
    	}
    	if(document.getElementById('nom').value == "") {
    		bool = false;
    		alert ('Vous avez oublié de saisir un champ!!!!');
    	}
    	if(document.getElementById('sujet').value == "") {
    		bool = false;
    		alert ('Vous avez oublié de saisir un champ!!!!');
    	}
    	if(document.getElementById('message').value == "") {
    		bool = false;
    		alert ('Vous avez oublié de saisir un champ!!!!');
    	}
    	return bool;
    }
    //-->
    </script>

Discussions similaires

  1. Requête modif dans formulaire ne marche pas
    Par crissud dans le forum IHM
    Réponses: 2
    Dernier message: 12/04/2007, 10h31
  2. [Formulaire]Formulaire login / mot de passe ne marche pas
    Par crissud dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/03/2007, 21h54
  3. [debutant] formulaire qui marche pas
    Par pimousse_cerise dans le forum JSF
    Réponses: 10
    Dernier message: 21/12/2006, 15h52
  4. Formulaire marche sous Firefox mais pas IE ?!
    Par ladybird dans le forum Langage
    Réponses: 8
    Dernier message: 02/08/2006, 11h44
  5. Formulaire avec du PHP qui ne marche pas !
    Par Sandara dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2006, 18h26

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