Aller au contenu

Vérification de formulaire en JS


c.klouchi

Sujets conseillés

Bonsoir,

j'essaye de programmer un formualire avec 3 champs et j'aimerais qu'un script en JD vérifie si les champs ont bien été remplie.

Pour l'instant j'en suis rendu ici

<script type="text/javascript">
function checkBlank(input,msg)
{
 
 if (input.value == null || input.value.length == 0) {
   alert ("Un ou plusieurs champs n'ont pas été rempli");
   return false;
 }
 
 var str = input.value;
 for (var i = 0; i < str.length;i++){
   var ch = str.substring(i,i+1);
   if ( ch == " ") {
     alert ("Un ou plusieurs champs n'ont pas été rempli");
     return false;
   }
 }
 return true;
}
function checkForm(form)
{
 if (
     !checkBlank(form.pseudo) ||
  !checkBlank(form.email) ||
     !checkBlank(form.url)) {
   return false;
 }
 form.submit();
 alert ("Merci pour votre reponse...");
 return true;
}
</script>
<form action="valide.php" method="post" enctype="application/x-www-form-urlencoded" >
vos prénom, nom <input type="text" name="pseudo">
votre email <input type="text" name="email">
url de votre site <input type="text" name="url">

<input type="submit" value="cliquez-ici" onClick="checkForm(this.form)">
</form>

voir le resultat ici

-http://www.emule-conseil.com/essai/form.htm

Mon souci et que lorsque un lien n'est pas rempli , le script le detecte mais renvoie quand même sur la page suivante

valide.php

Alors qu'il faudrait qu'il reste sur la même page.

Quelqu'un a t-il une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour j'utilise un script dans le meme genre que le tiens je dois cependant l'amélioré un peu .

J'ai regardé ton script mais y a certain truc que j'ai pas très bien compris a vrai dire.

voici l'adresse ou tu pourra trouver le miens regarde dans la source pour le code.

http://wulveryck.vincent.free.fr/formulaire.html

Amicalement vincent

Lien vers le commentaire
Partager sur d’autres sites

J'ai rapidement parcouru ton code et le problème vient du fait que tu vérifies ton formulaire par une succession de if{} mais le .submit() est exécuté quelque soit le résultat du if{}, donc par conséquent il validera le formulaire.

J'utiliserais le if ... else ... et j'écrirais un truc du genre :

function checkForm(form) {
  if (!checkBlank(form.pseudo) || !checkBlank(form.email) || !checkBlank(form.url)) {
     return false;
  } else {
     form.submit();
     alert ("Merci pour votre reponse...");
     return true;
  }
}

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Il existe une technique assez répandue consistant à construire l'ensemble des messages d'erreur que tu afficheras à la fin de tes controles via la fonction alert.

Ainsi, si la variable contenant les variables est vide tu submit le formulaire. Sinon tu affiches les messages :D

Modifié par solo
Lien vers le commentaire
Partager sur d’autres sites

Et il vaut mieux que tu colles la fonction de vérification dans le onSubmit du form plutot que sur le bouton ... car si on appuie sur Entree, ca ne lancera pas la fonction sinon

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...