Structure conditionnelle avec ELSE IF Javascript

Structure conditionnelle avec ELSE IF Javascript - HTML/CSS - Programmation

Marsh Posté le 06-03-2010 à 10:44:05    

Bonjour à tous,
 
Sur mon formulaire d'inscription :
 
 
if((!Pseudo) || (!Pass) || (!Mail) || (!Mail2) || (!Nom) || (!NomP) || (!Prenom)){
alerte="Merci de remplir correctement tous les champs du formulaire avant de valider votre inscription !";
alert(alerte);
 
=> Cette commande fonctionne et affiche bien l'erreur si besoin.
 
 
if (!Pseudo){ alerte="Merci de renseigner un pseudonyme."; alert(alerte);
}else if (!Pass){ alerte="Merci de renseigner un mot de passe."; alert(alerte);
}else if (!Mail){ alerte="Merci d'indiquer votre adresse e-mail."; alert(alerte);
}else if (!Mail2){ alerte="Merci d'indiquer votre adresse e-mail une seconde fois."; alert(alerte);
}else if (!Nom){ alerte="Merci de donner un nom à votre chien."; alert(alerte);
}else if (!NomP){ alerte="Merci de renseigner votre nom de famille."; alert(alerte);
}else if (!Prenom){ alerte="Merci de renseigner votre prénom."; alert(alerte); }
 
=> Celle ci ne se déclenche jamais... si le pseudo est vide par exemple.
 
Comment faire sur cette seconde liste ??
 
Merci :)

Reply

Marsh Posté le 06-03-2010 à 10:44:05   

Reply

Marsh Posté le 07-03-2010 à 04:58:52    

Tu fais ca dans une fonction ?
Si oui, fait un return derrière chaque alert, ca t'evitera une cascade de if inutile.


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 07-03-2010 à 21:09:01    

Je viens donc de tester ça :
 
if (!Pseudo){ alerte="Merci de renseigner un pseudonyme."; alert(alerte); return false;
}if (!Pass){ alerte="Merci de renseigner un mot de passe."; alert(alerte); return false;
}if (!Mail){ alerte="Merci d'indiquer votre adresse e-mail."; alert(alerte); return false;
}if (!Mail2){ alerte="Merci d'indiquer votre adresse e-mail une seconde fois."; alert(alerte); return false;
}if (!Nom){ alerte="Merci de donner un nom à votre chien."; alert(alerte); return false;
}if (!NomP){ alerte="Merci de renseigner votre nom de famille."; alert(alerte); return false;
}if (!Prenom){ alerte="Merci de renseigner votre prénom."; alert(alerte); return false;
}
 
Et rien ne s'affiche non plus :(
 
Merci par avance de votre aide.

Reply

Marsh Posté le 07-03-2010 à 21:50:58    

non, je voyais plus un truc plus générique du style :

Code :
  1. var test = fonction ()
  2. {
  3.  if (!this.Pseudo) {
  4.   return "Merci de renseigner un pseudonyme.";
  5.  }
  6.  if (!this.Pass) {
  7.   return "Merci de renseigner un mot de passe.";
  8.  }
  9.  if (!this.Mail) {
  10.   return "Merci d'indiquer votre adresse e-mail.";
  11.  }
  12.  if (!this.Mail2) {
  13.   return "Merci d'indiquer votre adresse e-mail une seconde fois.";
  14.  }
  15.  if (!this.Nom) {
  16.   return "Merci de donner un nom à votre chien.";
  17.  }
  18.  if (!this.NomP) {
  19.   return "Merci de renseigner votre nom de famille.";
  20.  }
  21.  if (!this.Prenom) {
  22.   return "Merci de renseigner votre prénom.";
  23.  }
  24.  return false;
  25. };
  26. // la liste de tes variables sous forme d'objet
  27. var aTester = {
  28.  Pseudo: null,
  29.  Pass: null,
  30.  Mail: null,
  31.  Mail2: null,
  32.  Nom: null,
  33.  NomP: null,
  34.  Prenom: null
  35. },
  36. texte;
  37. // ... tu initialises tes variables du genre :
  38. // aTester.Pseudo = monFormulaire.Pseudo.value;
  39. //
  40. // Pour peu que tes variables ont le même nom que tes champs dans ton formulaire, tu pourrais faire en une seule ligne :
  41. // for (var f in aTester) { aTester[f] = monFormulaire[f].value; }
  42. // tu appelles la fonction qui test la validité de tes champs, avec comme scope l'objet aTester (donc "this" = "aTester" )
  43. texte = test.call (aTester);
  44. if (texte) {
  45. return alert (texte); // texte est considéré comme true, donc non vide -> on affiche et on quitte.
  46. }


 
J'ai pas testé avec ce code spécifiquement, mais c'est comme ca perso que je ferais sans imbriquer des if et des else en cascade. En plus je peux rajouter et virer des champs à tester sans trop de grosses modifs.


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 08-03-2010 à 22:14:00    

Merci beaucoup :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed