Valider un formulaire

Résolu
cs_amer_ezahir Messages postés 133 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 20 septembre 2010 - 5 juin 2007 à 11:13
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 5 juin 2007 à 12:49
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

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
5 juin 2007 à 11:22
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 />
3
cs_amer_ezahir Messages postés 133 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 20 septembre 2010
5 juin 2007 à 11:37
je vous remercie infiniment tu m'as aider
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
5 juin 2007 à 12:49
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 />
0