Se connecter avec
S'enregistrer | Connectez-vous

Javascript: mes: messages ne s'affichent pas

Dernière réponse : dans Programmation

Bonsoir à tous,

j'ai écris le javascript ci dessous:

  1. <script language="javascript">
  2. function verifForm(formulaire)
  3. {
  4. {if (document.formulaire.nom.value == "")
  5. {alert('Veuillez remplir le champs Pseudo');}
  6. else
  7. {if (document.formulaire.sujet.value == "")
  8. {alert('Veuillez remplir le champs Sujet');}
  9. else
  10. {if (document.formulaire.texte.value == "")
  11. {alert('Veuillez remplir le champs Texte');}
  12. else
  13. { adresse = document.formulaire.mail.value;
  14. var place = adresse.indexOf("@",1);
  15. var point = adresse.indexOf(".",place+1);
  16. if ((place > -1)&&(adresse.length > 2)&&(point > 1))
  17. {
  18. formulaire.submit();
  19. alert('Message correctement envoyé !')
  20. return(true);
  21. }
  22. else
  23. {
  24. alert('Veuillez entrer une adresse E-mail correcte');
  25. return(false);
  26. }
  27. }
  28. }
  29. }
  30. }
  31. }
  32. }
  33. </SCRIPT>


Quand je test ce code sur mon pc, ça marche impec' cependant quand depuis que j'ai hébergé mon site chez free, les "alert" ne fonctionnent pas...
Ma question est pourquoi ? et comment règle-t-on le soucis ?

C'est free qui n'en veut pas ?

Merci à l'avance pour vos réponses :) 

:hello: 

Autres pages sur : javascript messages affichent

Lassé par la pub ? Créez un compte

Bonjour,

je ne sais pas si tu as résolu ton problème mais je voudrais juste te dire que cette succession de if/else imbriqués est une véritable horreur à suivre, surtout si tu rajoutes des champs dans ton formulaire.

De plus fonctionellement parlant ça n'est vraiment pas top parce que si l'utilisateur a oublié de renseigner 3 champs, par exemple, il aura 1 première alerte pour le premier champ, il fait la correction puis une deuxième alerte pour le deuxième champ etc etc, alors qu'il serait plus judicieux de fournir à l'utilisateur en une seule fois la liste de tous les champs qui posent problème.

Ce que je te propose comme solution c'est de vérifier tous les champs et en fin de traitement de renvoyer une seule alerte indiquant quels sont les champs qui posent problème

  1. function verifForm(formulaire)
  2. {
  3.  
  4. erreurMsg = "Erreur : les champs suivants sont vides\n"; // on initialise la chaine du message d'erreur
  5. erreur = false; // on part du principe qu'il n'y a pas d'erreur
  6.  
  7. if(document.formulaire.nom.value == "") {
  8. erreur = true; // il y a donc une erreur
  9. erreurMsg += "Nom\n"; // \n équivaut à un saut de ligne (tu verras pourquoi après)
  10. }
  11.  
  12. // là pas besoin de else, car ça n'a rien à voir avec la condition ci dessus
  13.  
  14. if(document.formulaire.sujet.value) == "") {
  15. erreur = true;
  16. erreurMsg += "Sujet\n";
  17. }
  18.  
  19. if(document.formulaire.texte.value == "") {
  20. erreur = true;
  21. erreurMsg += "Texte";
  22.  
  23. }
  24.  
  25. // etc etc pour les autres champs, j'ai un peu la flemme de tout retaper ;)
  26.  
  27.  
  28. // et maintenant on regarde si un ou plusieur champs est en erreur
  29.  
  30. if(erreur == true) {
  31. alert(erreurMsg);
  32. return false;
  33. }
  34. else { return true; }
  35.  
  36. }


Et voilà, une seule alerte pour tous les champs en erreur.


Bon celà dit, vérifier la validité des données d'un formulaire du coté client c'est bien mais ça n'est pas suffisant. C'est un peu comme si tu allais en boite et qu'il y avait un contrôle de sécurité à l'entrée du parking (non fermé) et personne à la porte de la boite... n'importe qui peut rentrer en fait. Il faut surtout valider les données du coté serveur parce que rien n'empêche de poster directement les données sur l'url de destination du formulaire. La première rêgle en terme de développement informatique, et c'est encore plus vrai sur le web, c'est qu'il ne faut jamais jamais jamais jamais jamais faire confiance aux données fournies par les utilisateurs.

Autre chose : si ce n'est déjà le cas, développe sous firefox et installe firebug, ça te permettra de voir ce qu'il y a comme erreur... il est possible que ton fichier n'ait pas été correctement transféré sur ton hébergement.

HTH



Lassé par la pub ? Créez un compte