Controler plusieurs champs d'un formulaire

cs_attentio Messages postés 167 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 24 mai 2010 - 29 oct. 2007 à 20:34
cs_samijoker Messages postés 5 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 30 octobre 2007 - 30 oct. 2007 à 11:23
Bonjour,

j'ai une fonction qui verifie tous les champs d'un formulaire qui ne marche pas
je ne comprends vraiment pas pourquoi ?

si je mets 

  if(document.formulaire.nom.value == "")
    {
     alert("Veuillez indiquer votre nom");
     document.formulaire.nom.focus();
     return false;
    }

avant

var y=document.formulaire.image_upload.value.indexOf(".");

et si je fais l'inverse ça ne marche plus

voici ma fonction en entier :
function verifForm()
{
  if(document.formulaire.nom.value == "")
    {
     alert("Veuillez indiquer votre nom");
     document.formulaire.nom.focus();
     return false;
    }
var y=document.formulaire.image_upload.value.indexOf(".");
var z=document.formulaire.image_upload.value.substring(y);
var adresse = document.formulaire.mail.value;



var place = adresse.indexOf("@",1);
var point = adresse.indexOf(".",place+1);



if  (z.toLowerCase()!=".jpg" && z.toLowerCase()!=".jpeg" && z.toLowerCase()!="")
{ alert ("Veuillez convertir l\'image en jpeg");
return false; }




 



 if ((place > -1)&&(adresse.length >2)&&(point > 1))
  {
  formulaire.submit();
  return(true);
  }
 else
  {
  alert('Entrez une adresse e-mail valide!!');
  return(false);
  }




 




 



   if(document.formulaire.prenom.value == "")
    {
     alert("Veuillez indiquer votre prenom");
     document.formulaire.prenom.focus();
     return false;
    }
   if(document.formulaire.adresse.value == "")
    {
     alert("Veuillez indiquer votre adresse");
     document.formulaire.adresse.focus();
     return false;
    }
   if(document.formulaire.cp.value == "")
    {
     alert("Veuillez indiquer votre code postal");
     document.formulaire.cp.focus();
     return false;
    }
   if(document.formulaire.ville.value == "")
    {
     alert("Veuillez indiquer votre ville");
     document.formulaire.ville.focus();
     return false;
    }
   if(document.formulaire.mail.value == "")
    {
     alert("Veuillez indiquer votre mail");
     document.formulaire.mail.focus();
     return false;
    }
}
</script>


merci de votre aide

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 oct. 2007 à 09:44
Bonjour,

    pas certain d'avoir compris...
    sauf que formulaire.submit () déclanche la soumission et les test suivants
       ne sont pas fait !
    d'ailleurs, la forme normale serait d'utiliser onsubmit

    tu aurais pu nous donner le formulaire, ça nous aurait
       évité de l'écrire pour tester
    il existe des expressions régulières pour un
       meilleur controle d'une adresse mail

<script type="text/javascript">
function test()
{
var y=document.formulaire.image_upload.value.indexOf(".");
var z=document.formulaire.image_upload.value.substring(y);

if  (z.toLowerCase()!=".jpg" && z.toLowerCase()!=".jpeg")
{ alert ("Veuillez convertir l\'image en jpeg");
return false; }

var adresse = document.formulaire.mail.value;   // peut mieux faire
var place = adresse.indexOf("@",1);
var point = adresse.indexOf(".",place+1);
 if (!((place > -1)&&(adresse.length >2)&&(point > 1)))
  {
  alert('Entrez une adresse e-mail valide!!');
  return(false);
  }
    /*
 if(document.formulaire.prenom.value == "")
    {
     alert("Veuillez indiquer votre prenom");
     document.formulaire.prenom.focus();
     return false;
    }
*/     
}
</script>
<form name="formulaire"
        onsubmit="return test();"
        action="javascript:alert('ok');">
   
   
    ...
   
</form>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
30 oct. 2007 à 09:59
Attention aux "document.formulaire.image_upload" c'est le genre de chose qui ne marche pas partout ...

à ta place j'utiliserai soit un document.getElementsByTagName('FORM') qui retourne un tableau d'éléments DOM soit un document.getElementById('mon_formulaire')

... m'enfin, je dis ca mais je dis rien :o)

--=Capoueidiablo=--
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 oct. 2007 à 10:08
>>

Attention aux "
document.formulaire.image_upload"
>>c'est le genre de chose qui ne marche pas partout ..
    ben justement,
            ça fonctionne avec FireFox, Internet Explorer, K-Meleon, Opera, Safari, Netscape...
    et si ça ne fonctionne pas avec un autre navigateur, il vaudrait mieux l'abandonner   ;o))


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 oct. 2007 à 10:10
tandis que le DOM et/ou getElementById sont beaucoup moins sûrs
( comme sur des version antérieures de certains navigateurs )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_samijoker Messages postés 5 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 30 octobre 2007 1
30 oct. 2007 à 11:23
je te propose ces fcts pour vérification d'adresse mail , adresse, code et prenom çà sera bcp mieux et simple je l'ai vérifié et çà marche trés bien

function verif(mail) { // vérif validité email par REGEXP
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
        if(reg.exec(mail.value)==null) {
         alert("Entrer émail juste!")
         mail.focus()
   return false
      } else
    return true
      }
//la fct suivante test est valable pour addresse,code et prénom, il suffit de remplacer les champs quand tu appelle la fonction exp: 
 function test(addresse) {
        var reg =/^[a-z0-9.-_]/
      if(reg.exec(addresse.value)==null) {
         alert("vérifiez les champs")
         addresse.focus()
   return false
      } else
    return true
      }
voilà un exemple complet et trés simple que g fait pour tester ces fonctions, tu peux essayer pour mieux comprendre : 
<script language="JavaScript"><!--
function verif(mail) { // vérif validité email par REGEXP
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
        if(reg.exec(mail.value)==null) {
         alert("Entrer View Name!")
         mail.focus()
   return false
      } else
    return true
      }
 
function test(addresse) {
        var reg =/^[a-z0-9.-_]/
      if(reg.exec(addresse.value)==null) {
         alert("Entrer l'adresse")
         addresse.focus()
   return false
      } else
    return true
      }
//--></script>
<html>
<form  name="formulaire" >

</form>
</html>
et tu peux améliorer en jouant sur les variable reg , j'éspére que çà va vous aider. bon travail
0
Rejoignez-nous