Aller au contenu

Sujets conseillés

Posté

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 ?

Posté

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;
  }
}

  • 3 semaines plus tard...
Posté (modifié)

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
Posté

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

Veuillez vous connecter pour commenter

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



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