Problème de fonction de validation d'un formulaire [Résolu]

Signaler
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010
-
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010
-
Bonjour a tous,
j'ai un formulaire qui contient des champs et un bouton valider les voilà:
<form name="form" method="post" action="Valider.php" onsubmit="return verify(this.password, this.confpassword)" >

........//les champs

</form>
voilà ma fonction en javascript:
<script type="text/javascript" language="JavaScript">
function Verif()
{
if(document.form.champ1.value != "")
{
    document.form.submit();
 return true;
}
else
{
    alert("Veuillez saisir votre champ!!");
    return false;
}
 if(document.form.prenom.value != "")
{
    document.form.submit();
 return true;
}
else
{
    alert("Veuillez saisir votre prénom!!");
    return false;
}
</script>
mon problème c'est que la fonction Verif() ne s'éxécute pas  je ne sais po pourquoi ???
j'espère que quelqu'un m'aidera .
Merci


 if(document.form.prenom.value != "")
{
    document.form.submit();
 return true;
}

46 réponses

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

if (element1.value= ='')
   {
    alert("Veuillez entrer votre "+fieldalias+" mot de passe!");
    element1.focus();
    passed=false; // ou return false;
   }



   else if (element2.value=='')
   {
    alert("Veuillez confirmer votre "+fieldalias+" mot de passe!")
    element2.focus()
 



    passed=false;




  }





   else if (element1.value! =element2.value)
   {
    alert("Les deux "+fieldalias+" ne sont pas identique")
    element1.select()




    passed= false;




   }




   else
   passed =true;

   return passed;






<hr />



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



<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
avec IE : le debogger n'est toujours pas activé ?
avec FF : pourquoi ne pas regarder la "console d'erreur" ?

>>il ne rentre toujours pas dans le focus du champs email
    une erreur doit être affichée.






if ( !is_mail(document.forms.email.value) )
   {    alert('Votre adresse e-mail n\'est pas valide!!');
       

document.forms.

email.focus();
        return false;
    }





<hr />



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



<hr />
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Bonjour

Regarde peut-être ici, ça pourrait t'aider
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

ok merci je vais essayer ça 
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Ton formulaire sera soumis dans tous les cas (utilisation du bouton de type submit), c'est peut-être de là que viens le problème...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

    pourquoi mettre une fonction verify dnans le onsubmit du formulaire
       et une fonction Verif dans le onclick du bouton submit ?
    redondance.
    seule la fonction dans le onsubmit est nécessaire.

<form name="form" method="post" action="Valider.php" onsubmit="return verif();" >...




<hr />



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



<hr />
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

salut,
la fonction Verify() traite l'identification de la confirmation du mot de passe, alors je l'ais mis dans le onsubmit, et l'autre fonction Verif() fait le traitement des champs vide et j'en ais une autre fonction qui vérif la validité du mail mais je ne sais pas comment je peut regrouper tous ces fonction dans un meme submit, est ce qu'il y a un moyen de regrouper tout ses fonctions dans le meme onsubmit du formulaire ou le onclick du boutton de type submit??.
Merci encore pour vos réponses
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai oublié de signaler aussi que dans la fonction
les   document.form.submit(); doivent être supprimés
<hr />
Cordialement            Bul     [mon Site]     [M'écrire]
<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
si on respecte les choses comme elles doivent être faites :



<script type="text/javascript">

    function verif()

    {      
        contrôles....        ( ici donc les contrôles de verif et de verify )

        si "erreur" return false;

        else             return true;

    }

</script>



<form ... action= onsubmit="return(verif());"...
...
   
</form>

<hr />


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



<hr />
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

oui j'ai supprimé et je l'ai remplacé par :
function Verif()
{
if(document.forms.civilite.value =="")
{
 alert("Veuillez saisir votre civilité!!");
    document.forms.civilite.focus();
 return false;
}
if(document.forms.prenom.value =="")
{
 alert("Veuillez saisir votre prénom!!");
    document.forms.prenom.focus();
    return false;
}
}
mais toujours le meme problème la fonction qui est dans le onsubmit() Verify s'éxécute mais la fonction qui est dans le bouton ne séxécute po
que puis je faire?
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

salut,
la fonction Verify() traite l'identification de la confirmation du mot de passe, alors je l'ais mis dans le onsubmit, et l'autre fonction Verif() fait le traitement des champs vide et j'en ais une autre fonction qui vérif la validité du mail mais je ne sais pas comment je peut regrouper tous ces fonction dans un meme submit, est ce qu'il y a un moyen de regrouper tout ses fonctions dans le meme onsubmit du formulaire ou le onclick du boutton de type submit??.
Merci encore pour vos réponses
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
        copier/coller les contrôles effectués dans Verify vers la fonction Verif

function Verif()
{    if(document.forms.civilite.value =="")
    {    alert("Veuillez saisir votre civilité!!");
          document.forms.civilite.focus();
         return false;
    }
    if(document.forms.prenom.value =="")
    {
         alert("Veuillez saisir votre prénom!!");
         document.forms.prenom.focus();
         return false;
    }

    ici les contrôles faits dans Verify , par exemple

}



<form name="form"
            method="post"
            action="Valider.php"
            onsubmit="return (Verif());" >
         
    ...... les champs

</form>








<hr />



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



<hr />
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

mais la fonction Verify() en lui passe des arguments  voilà :
var fieldalias="mot de passe"


function verify(element1, element2)
 {
  var passed=false


   if (element1.value=='')
   {
    alert("Veuillez entrer votre "+fieldalias+" mot de passe!")
    element1.focus()
   }


   else if (element2.value=='')
   {
    alert("Veuillez confirmer votre "+fieldalias+" mot de passe!")
    element2.focus()
   }


   else if (element1.value!=element2.value)
   {
    alert("Les deux "+fieldalias+" ne sont pas identique")
    element1.select()
   }


   else
   passed=true
   return passed
 }
alors comment je peux faire mon appel
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
remplacer les arguments par les champs ? non ?





var element1=document.form.password;
var element2=document.form.confpassword;


if (element1.value=='')
   {
    alert("Veuillez entrer votre "+fieldalias+" mot de passe!")
    element1.focus()
   }



   else if (element2.value=='')
   {
    alert("Veuillez confirmer votre "+fieldalias+" mot de passe!")
    element2.focus()
   }





   else if (element1.value!=element2.value)
   {
    alert("Les deux "+fieldalias+" ne sont pas identique")
    element1.select()
   }




   else
   passed=true
   return passed






                on colle le tout là où il faut comme indiqué et on vire
                la fonction verify

                encore une chose... verifier les Majuscules/minuscules
                      verif n'est pas = Verif

<hr />


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



<hr />
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

j'ai fais ce que tu m'as écris mais lorsque je confirme par un autre mot de passe le message s'affiche et puis lorsque je click sur ok du message le formulaire s'envoi a l'autre page sans qu'il me laisse saisir la bonne confirmation
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

cooooooooool ça marche mercii bcp bcp d'avoir patienter et répondre sur toutes mes questions
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
merci du retour.
une remarque, en général, c'est mieux d'avoir toutes les erreurs "d'un coup".

function controle()
{   var lib="";
    if ( champ 1 pas bon )   lib+="\r\n_1 faux";


    if ( champ 2 ne va pas ) lib+="\r\n_2 pas bon";

    ... les autres contrôles font "pareil" ...
    if (lib.length>0)
             {   alert (lib);  
                 return false;
             }
    else     {   return true;   }
}





<hr />



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



<hr />
Messages postés
97
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
28 mai 2010

ok je suiverai ton conseil.
j'ai une tout petite question j'ai une autre fonction qui fais le controle du validité du mail cette fonction et a part la voilà:
function checkEmail(emailAddr) {
 var i;
 
 i = emailAddr.indexOf("@");
 if (i == -1) {
  return false;
 }
 
 // Séparation du nom de l'utilisateur et du nom de domaine.
 var username = emailAddr.substring(0, i);
 var domain = emailAddr.substring(i + 1, emailAddr.length)


 // Recherche des espaces au début du nom de l'utilisateur.
 i = 0;
 while ((username.substring(i, i + 1) == " ") && (i < username.length)) {
  i++;
 }
 // Les enlève s'il en trouve.
 if (i > 0) {
  username = username.substring(i, username.length);
 }


 // Recherche d'espaces à la fin du nom de domaine.
 i = domain.length - 1;
 while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
  i--;
 }
 // Les enlève s'il en trouve.
 if (i < (domain.length - 1)) {
  domain = domain.substring(0, i + 1);
 }


 // Vérifie que le nom de l'utilisateur et du domaine ne soit pas vide. if ((username "") || (domain "")) {
  return false;
 }
 
 // Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
 var ch;
 for (i = 0; i < username.length; i++) {
  ch = (username.substring(i, i + 1)).toLowerCase();
  if (!(((ch >= "a") && (ch <= "z")) ||
   ((ch >= "0") && (ch <= "9")) ||   (ch "_") || (ch "-") || (ch == "."))) {
    return false;
  }
 }
 
 // Vérifie s'il n'y a pas de caractères interdits dans le nom de domaine
 for (i = 0; i < domain.length; i++) {
  ch = (domain.substring(i, i + 1)).toLowerCase();
  if (!(((ch >= "a") && (ch <= "z")) ||
   ((ch >= "0") && (ch <= "9")) ||   (ch "_") || (ch "-") || (ch == "."))) {
    return false;
  }
 }


var aSuffix = new Array("com","net","int","aero","biz","museum","name","info","coop","pro","eu","edu","org","gov","mil","bj","dz","de","ad","be","ca","bf","bi","cm","cf","cg","cd","ci","dj","fr","ga","gp","gf","lu","mg","ml","ma","mq","mr","mc","nc","pf","re","pm","sn","ch","td","tf","tn");
 var bFoundSuffix = false;
 i = 0;
 while (i < aSuffix.length) {
  if (("." + aSuffix[i]) == domain.substring(domain.length - aSuffix[i].length - 1, domain.length)) {
   return true;
  }
  i++;
 }
 // Si le nom de domaine est inconnu  : return false
 return false;
 



function emailOK(emailAddr) {
 if (!(checkEmail(emailAddr))) {
  alert("Merci de vérifier votre adresse e-mail. Elle n'est pas dans le bon format.");
 }
}
ma question c'est comment je peux faire la regrouper dans ma fonction Verif() ?
Merci encore bultez.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
déjà la fonction pour contrôler le mail me semble bien compliquée.
    il y a plein d'exemples partout, mais en voici un :

function is_mail(email) 
{ return /^((?:\w+(?:\-|\.)?\w+)+)\@((?:\w+(?:\-|\.)?\w+)+\.\w{2,4})$/.test(email); }

dans la fonction de contrôle Verif() , "il suffit" donc d'ajouter
    un appel à cette fonction, du style
        if ( !is_mail(champ de saisie de l'adresse mail) ) { mail invalide }

<hr />                Cordialement        Bul     [mon Site]     [M'écrire]<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
la fonction pour contrôler le mail, ne regarde pas si le .suffixe est connu
    à ajouter donc, si cela semble nécessaire. mais à mon humble avis, il n'y
    a qu'un moyen de savoir si le mail est réellement correct : envoyer un
    message et attendre une réponse, ne compliquons donc pas outre mesure ?
<hr />                Cordialement            Bul     [mon Site]     [M'écrire]<hr />