Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérification formulaire

Multi conditions

Sujet résolu
    24 novembre 2010 à 19:52:42

    Bonjour,

    Je souhaite vérifier mon fomulaire avec Javascript mais je pense que mon code n'est pas le plus approprié à mes besoin et je bloque pas mal sur 2/3 points.

    Le formulaire doit comprendre :

    - Soit une adresse mail valide ET un choix de langue (type radio name=langue)
    - Soit une adresse postale complète (avec au moins un chiffre)ET un code postal de 4 chiffres ET une ville ET un choix de langue (type radio name=langue).

    L'objectif serait d'avoir un message d'alerte différent pour chaque erreur.

    Merci d'avance pour vos lumières...

    Voilà mon code :

    function surligne(champ, isCorrect)
    {
       if(isCorrect)
          champ.style.backgroundColor = "";
       else
          champ.style.backgroundColor = "#ff1800";
    }
    
    function verifMail(champ)
    {
       var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
       if(!regex.test(champ.value))
       {
          return false;
       }
       return true;
    }
    
    function verifStreet(champ)
    {
    	if(champ.value.length < 2 || champ.value.length > 200)
    	{
    		return false;
    	}
    	return true;
    }			
    
    function verifPostcode(champ)
    {
    	if(champ.value.length < 4 || champ.value.length > 5)
    	{
    		return false;
    	}
    	return true;
    }			
    
    function verifCity(champ)
    {
    	if(champ.value.length < 2 || champ.value.length > 100)
    	{
    		return false;
    	}
    	return true;
    }				
    
    function verifForm(f)
    {
    	var mailOk = verifMail(f.email);
    	var streetOk = verifStreet(f.street);
    	var postcodeOk = verifStreet(f.postcode);
    	var cityOk = verifStreet(f.city);
    	   
    	if(mailOk || (streetOk && postcodeOk && cityOk))
    	{
    		return true;
    	}
    	if(!streetOk && !postcodeOk && !cityOk)
    	{
    		surligne(f.email, mailOk);
    	}
    	surligne(f.street, streetOk);
    	surligne(f.postcode, postcodeOk);
    	surligne(f.city, cityOk);
    	
    	if(streetOk || postcodeOk || cityOk)
    	{
    		alert("Vous devez remplir tous les champs définissant votre adresse.");
    		return false;
    	}
    	alert("Veuillez encoder une adresse mail ou une adresse postale valide");
    	return false;
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2010 à 23:13:10

      Ton code à l'air correcte en tout cas.

      Ton seul problème est donc l'enchainement de conditionnelles ?

      de se que je comprend il te faudrait un truc du genre :
      if(langueSelected){ // il faut de toute facon une langue
         if(mailOk){ // si le mail est bon
            surligne(mail, true);
            return true; // ca suffit
         }
         else{
            if(adresseOk && postCodeOk && cityOk){ // si c'est les infos postale qui sont bonnes
               surligne(batoutcequilaaudessus, true);
               return true; // c'est bon aussi
            }
            else{ // donc les coordonées sont pas bonne
               surligne(toutca, false);
               alert('les coordonnées sont eronnées');
            }
         }
      }
      


      ca devrais le faire.
      Vu que si on a bien selectionné la langue mais que le reste est faux, on ne sais pas si l'utilisateur comptait remplir mail ou coordonnées postale.
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2010 à 12:41:18

        Merci pour ta réponse, je vais aller dans ce sens, je réécrirai quelque chose d'un peu complet par la suite...
        • Partager sur Facebook
        • Partager sur Twitter

        Vérification formulaire

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown