Version complète: sur le forum Webmaster Hub : Vérification de formulaire en JS
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Asp, Java, Cfm, autres.
c.klouchi
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

CODE
<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 ?
vincent_w
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
K-ZimiR
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 :

CODE
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;
  }
}
c.klouchi
Merci beaucoup tongue.gif
Thanh
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 biggrin.gif
Findel
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
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.