Valider un formulaire [Résolu]

Signaler
Messages postés
133
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 septembre 2010
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Salut à tous;

svp, j'ai créer un formulaire html avec un petit code en javascript
pour le valider mais le submit se fait avant la validation du
formulaire , que ce que je peux faire , aidez moi svp ;

le voila mon code:
la page index.html contient:

<SCRIPT language="javascript">

    function ValiderMail(theForm) {

    var lemail=theForm.email.value;

    var regexp = /^^[A-Za-z0-9_-]+([\.][A-Za-z0-9_-]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$$/;

    flag=regexp.test(lemail);

    if (!flag){

        alert("Votre adresse d'email
semble incorrecte\nMerci de vérifier le champ "adresse email".");

        theForm.email.focus();

        return (false);

        }

    // nouveau control du mail hildegard 2003 01 23


    var forbiddenEmail = new Array();

    forbiddenEmail[0] = "@edf.fr";

    forbiddenEmail[1] = "@gdf.fr";

    forbiddenEmail[2] = "@rte.fr";

    forbiddenEmail[3] = "@grt.fr";

    forbiddenEmail[4] = "@edfgdf.fr";

    forbiddenEmail[5] = "@distrigame.com";

    forbiddenEmail[8] = "@aol.com";

    forbiddenEmail[9] = "@aol.fr";

    for (var i=0; i<forbiddenEmail.length; i++){

        if(lemail.indexOf(forbiddenEmail[i]) >= 0){

            alert("Pour
des raisons d'incompatibilité, merci de ne pas utiliser cette adresse
email.\nDe nombreux sites proposent des adresses email gratuites sur
Internet.");

            theForm.email.focus();

            return (false);

            }

        }

    if (theForm.titre.selectedIndex == 0){

         alert("Merci de bien vouloir préciser votre civilité.");

         theForm.titre.focus();

         return (false);

        }

       

    if (theForm.prenom.value.length < 2){

        alert("Tapez au moins 2 caractères dans le champ "prenom".");

        theForm.prenom.focus();

        return (false);

        }


    if (theForm.nom.value.length < 2){

        alert("Tapez au moins 2 caractères dans le champ "nom".");

        theForm.nom.focus();

        return (false);

        }


    if (theForm.soc.value.length < 2){

        alert("Tapez au moins 2 caractères dans le champ "nom".");

        theForm.nom.focus();

        return (false);

        }


     if (theForm.adresse.value.length < 5){

         alert("Votre adresse semble incomplète, merci de vérifier.");

         theForm.adresse.focus();

         return (false);

         }


}


</SCRIPT>

<html>

<head>

    ----

           

            <FORM method="post" action="verifmail.asp" id="envmail" OnSubmit="ValiderMail();">

           
    <table border="0" cellspacing="0" cellpadding="0"
width="770" >

           
        ----, Formulaire du contact :
</td>Les champs suivis d'un * sont
obligatoire.,

                    ----

           
            Email&nbsp;:&nbsp;, &nbsp;* ,

           
                       
           
    <table border="0">

           
           
       
----, Contenu du message
:</td>

           
           
        ----

           
           
            <textarea name="message" Rows=7
cols=39></textarea>,

           
           
       

           
           
        ----
           
           
           

           
           
           

       

           
           
       ,

           
           
       

           
           
   
 

                    </tr>


                    <tr>

           
            <td
align="left"
width="180px">Civilité&nbsp;:&nbsp;   
</td>

                        <td>

           
            <SELECT
class="marge" name="titre">       
       

           
            <OPTION
selected >Merci de choisir ...</OPTION>   
           

           
           
<OPTION  >Mme.</OPTION>   
           

           
           
<OPTION  >Mlle.</OPTION>   
           

           
           
<OPTION  >M.</OPTION>   
           

           
           
</SELECT></td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Prénom&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Nom&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Société&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Adresse&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Tél.&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>

                    <tr>

           
            <td
align="left"
width="180px">Fax&nbsp;:&nbsp;</td><td>&nbsp;*</td>

                    </tr>   

            </table>

           

        </FORM>

    </td>

</tr>

</table>



</head>

</html>

la page verifmail.asp contient juste ça (juste pour compléter le code )

<%

response.write "votre formulaire est bien remplis"

%>

Merci de votre aide

3 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

    ° theForm de la fonction : c'est quoi ?
    ° où est utilisé le return de la fonction ?

            <FORM method="post" action="verifmail.asp" id="envmail"
                        OnSubmit="return(ValiderMail(this));">

    ça devrait le faire

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
133
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 septembre 2010

je vous remercie infiniment tu m'as aider
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
il vous en prie.
nickel si ça baigne.

une petite remarque :
    pourquoi ne pas signaler toutes les erreurs
            en même temps, plutôt qu'une par une ?

    pour un utilisateur, c'est agaçant  :
        d'envoyer le formulaire, de voir un message "mail incorrect"
        il corrige, renvoie, et nouveau message : "prénom <2 caractères"
           ...
   
    il envoie le formulaire, et on affiche "mail incorrect
                                                                  prénom < 2 caractères ..."
          toutes les erreurs quoi, il peut tout corriger en 1 fois aussi.

    ce n'est qu'un avis, mais comme c'est le mien, je le respecte,
       je le partage aussi avec tous ceux qui pensent comme moi,
       quand aux autres, nous ne sommes pas d'accord, c'est tout.

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />