Controle des champs d'un formulaire

siatu Messages postés 10 Date d'inscription mardi 14 septembre 2010 Statut Membre Dernière intervention 17 septembre 2010 - 16 sept. 2010 à 11:23
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 16 sept. 2010 à 19:29
Bonjour tous le monde,
j'ai un probleme quand je verifie les champs du mon formulaire et en cas
ou la saisie est incorrecte au lieu de rester dans la meme page pour que l'utilusateur saisie une autre fois ses infos on y trouve dans la page action du formulaire
voila le code javascript

function contact()
{
var message="";
if(document.form.name.value=="")
message+="le champ nom est vide\n";
else
if(document.form.email.value=="")
message+="le champ email est vide";
if(message=="")
document.form.submit();
else
alert(message);
}

et voila le code html du formulaire



 Saisissez votre nom :





 Adresse e-mail :





 Objet du message :







 Saisissez votre message :










aidez moi svp je suis un debutant en javascript et merci.

5 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 sept. 2010 à 11:35
bonjour,
c'était presque le bon résultat, à une ou deux variantes près...
d'un point de vue script:
<script>
function contact()
{
var message="";
if(document.form.name.value=="")
message+="le champ nom est vide\n";
else
if(document.form.email.value=="")
message+="le champ email est vide";
if(message==""){
document.form.submit(); 
}
else
alert(message);
return false;
}
</script>


et d'un point de vue html:
<form method="post" name="form" action="contact.php" id="form1">

 
<label for="contact_name2">  Saisissez votre nom : </label>





<label for="contact_email" class="leftboldtxt" id="contact_emailmsg">  Adresse e-mail : </label>





<label for="contact_subject" class="leftboldtxt">  Objet du message : </label>







<label for="contact_text" class="leftboldtxt" id="contact_textmsg">  Saisissez votre message : </label>


<textarea cols="50" rows="10" name="text" id="contact_text"></textarea>






</form>


Mais tout de même quelques explication.
Tout d'abord, pourquoi le formulaire se soumettait alors qu'il était erroné ?
- simplement parce que les boutons de type submit force la soumission du formulaire, du coup en le transformant en button, il n'y a plus de soucis, la soumission du formulaire ce fait via la méthode contact().
- de plus cette méthode retourne false si le formulaire n'est pas valide, de cette manière, il est sure que la soumission ne se fera pas et le message d'avertissement sera ok.

et voilà, normalement, à ce niveau ça doit répondre aux attentes souhaitées.


[o-_-o]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 sept. 2010 à 13:32
Bonjour,
tiens pourquoi un double POST?...
;O)
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 sept. 2010 à 13:39
Salut PetoleTeam, la ou on a de la chance, c'est un double post avec des réponses quasi identique.
Ouf, on s'en sort bien sur ce coup )


[o-_-o]
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
16 sept. 2010 à 13:44
Bonjour,

Pas besoin de "button". A la soumission d'un formulaire, un évènement "onsubmit" est déclenché sur l'élément "form".
Exemple :
<html>
  <head>
    <title>test</title>
    <script type="text/javascript">
      function validForm(formulaire)
      {
          var message="";
          if(formulaire.name.value=="")
            message += "le champ nom est vide\n";
          if(formulaire.email.value=="")
            message += "le champ email est vide";
          if(message != "")
          {
            alert(message);
            return false;
          }
          return true;
      }
    </script>
  </head>
  
    <form method="post" name="formulaire" action="contact.php" id="form1" onsubmit="return validForm(this)">
      
 
      <label for="contact_name2">  Saisissez votre nom : </label>
      

      
      

      <label for="contact_email" class="leftboldtxt" id="contact_emailmsg">  Adresse e-mail : </label>
      

      
      

      <label for="contact_subject" class="leftboldtxt">  Objet du message : </label>
      

      
      

      

      <label for="contact_text" class="leftboldtxt" id="contact_textmsg">  Saisissez votre message : </label>
      

      <textarea cols="50" rows="10" name="text" id="contact_text"></textarea>
      

      

      

    </form>
    
</html>

Cordialement.

JC
0

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

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 sept. 2010 à 19:29
..toujours est encore le problème du return false si une erreur est détecté, quant à la façon de coder...

il est un fait que la meilleur façon, à mon avis que je partage surtout avec moi même, de soumettre reste l'événement onsubmit sur la FORM avec juste un INPUT type=submit sans événement onclick, because si on fait Entrée on l'a dans l'os...

PS : Cela ne doit pas empêcher de faire les vérifs coté serveur quoi qu'il arrives

;O)
0
Rejoignez-nous