Javascript: verifier que formulaire rempli

Fermé
moicjm - 5 août 2008 à 17:16
max_batteur_fou Messages postés 39 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 avril 2009 - 5 août 2008 à 18:31
Bonjour,

Je ne comprends pas pourquoi, j'ai copié-collé le code ci-dessous afin de vérifier que des boutons "radio" soit coché, mais il ne marche pas chez moi... (oui, j'ai changé la variable "age" par ma propre variable et oui, j'ai activé JS!!)



Merci d'avance de votre aide....



J'aurai une autre question apres...

JM




Voici le code :

function CheckPoll(formu){
var res = false;
var n = formu.age.length;
// Je parcours mes radio afin de voir si une d'elle est à l'etat "checked"
for (i=0;i<n;i++){
if (formu.age[i].checked){
res = true;
}
}
if (!res){
alert("Vous n'avez pas renseigné votre tranche d'age");
return res; // Je sors de la fonction avec le résultat "false"
}


// Dans mon code html :
<input type="radio" name="age" value="15et20"> entre 15 et 20 ans,
<input type="radio" name="age" value="20et25">20 et 25,
<input type="radio" name="age" value="25et30">25 et 30,
<input type="radio" name="age" value="30etplus">30 et +.

...

puis :

<input type="submit" value="valider" onclick="return(CheckPoll(this.form));" />

3 réponses

max_batteur_fou Messages postés 39 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 avril 2009 5
5 août 2008 à 17:28
Il y a un petit souci dans la fonction :
function CheckPoll(formu){
   var res = false;
   var n = formu.age.length;
   // Je parcours mes radio afin de voir si une d'elle est à l'etat "checked"
   for (i=0;i<n;i++){
      if (formu.age[i].checked){
         res = true;
      }
   }
   if (!res){
      alert("Vous n'avez pas renseigné votre tranche d'age");
      return res; // Je sors de la fonction avec le résultat "false"
   } 

La fonction CheckPoll n'est pas fermée. Ensuite il faudrait faire un else{return true;} car la ta fonction ne renverra jamais vrai.
Il faudrais donc à mon avis :
function CheckPoll(formu){
   var res = false;
   var n = formu.age.length;
   // Je parcours mes radio afin de voir si une d'elle est à l'etat "checked"
   for (i=0;i<n;i++){
      if (formu.age[i].checked){
         res = true;
      }
   }
   if (!res){
      alert("Vous n'avez pas renseigné votre tranche d'age");
      return false; // Je sors de la fonction avec le résultat "false"
   } 
   else{
      return true;
   }
}
0
youhou! ca marche du tonnerre maintenant!!! MERCI !


Ma 2nde question si tu veux bien ...
J'ai sur la meme page, dans le meme formulaire 3 séries de variables appelées par des "radio".
Faut-il que je recopie cette fonction 3 fois en changeant à chaque fois la variable ou bien n'aurait-il pas un moyen de checker que les 3 séries soit bien coché ?

merci encore!

JM
0
max_batteur_fou Messages postés 39 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 avril 2009 5
5 août 2008 à 18:31
Je n'ai pas très bien compris ta question.
Je suppose que la fonction d'avant est celle qui te sert à checker une des 3 séries.
Après, si j'ai bien compris, tu voudrais vérifier les 2 autres. La il y a une précision à apporter. L'utilisateur peut ou ne peut pas valider si il manque une des 3 séries ?
Je suppose que l'utilisateur ne peut pas passer à la page suivant si il n'a pas fait un choix dans chacune des 3 série.
Dans ce cas cela ne sert à rien de checker pour chaque fonction.
Si tes 3 séries sont dans le même formulaire (ce qui me semble plutôt pas mal ^^) alors tu fait la vérification des 3 formulaires dans la fonction.
D'après moi il n'y a que ce bout de code qui change :
   for (i=0;i<n;i++){
      if (formu.age[i].checked){
         res = true;
      }
   }

Dans le for tu lui ajoute juste :
   for (i=0;i<n;i++){
      if (formu.age[i].checked){
         res1 = true;
      }
      if (formu.truc[i].checked){
         res2 = true;
      }
      if (formu.bidule[i].checked){
         res3 = true;
      }
   }

Et après le test est :
   if (!res1){
      alert("Vous n'avez pas renseigné votre tranche d'age");
      return false; // Je sors de la fonction avec le résultat "false"
   } 
   else if(!res2){
      alert("Vous n'avez pas renseigné votre truc");
      return false; // Je sors de la fonction avec le résultat "false"
   }
   else if(!res3){
      alert("Vous n'avez pas renseigné votre bidule");
      return false; // Je sors de la fonction avec le résultat "false"
   }
   else{
      return true;
   }


Dis moi ce que t'en pense.
Sinon redonne moi quelques précisions j'essayerai de faire de mon mieux ^^
J'espère que cela t'aidera.
0

Discussions similaires