Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2686 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript:Pb de gestion d'erreur en javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Javascript:Pb de gestion d'erreur en javascript

n°1650695
dante76
Divine Comédie
Posté le 29-11-2007 à 11:02:09  profilanswer
 

Bonjour.
Voilà mon problème.
Je dois gérer des erreurs coté clients donc en javascript.Quand je teste avec tous les champs vides, ca marche tré bien, c'est à dire qu'il m'affiche dans des boites de dialogues les erreurs.
Mais j'ai 5 champs de saisies et dés que je renseigne un champ de sasise, il ne passe pas au champ suivant qui lui est vide.
Exemple:Mon premier champ est Nom, je saisie mon nom mais il ne passe pas au prochain champ qui est vide.
Autre exemple:Cette fois-ci je renseigne mon quatième champ:il m'affiche bien les erreurs pour les 3 premiers champs vides, mais ne passe pas au 5ème champs.
Voici le code qui gére les erreurs:
 

Code :
  1. function soumettre()
  2. {
  3. //gére les erreurs coté clients
  4. if (document.formulaire.Nom.value<1)
  5. {
  6.  alert("Vous devez renseigner le champ nom" );
  7.  if (document.formulaire.Adresse.value<1)
  8.  {
  9.   alert("Vous devez renseigner le champs adresse" );
  10.   if(document.formulaire.email.value<1)
  11.   {
  12.    alert("Vous devez renseigner le champ E-mail" );
  13.    if(document.formulaire.refcom.value<1)
  14.    {
  15.     alert("Vous devez renseigner le champ férérence de la commande" );
  16.     if(document.formulaire.montant.value<1)
  17.     {
  18.      alert("Vous devez indiquer le montant pour la facturation" );
  19.      return false;
  20.     }
  21.     else
  22.     {
  23.      document.write("Merci d'avoir choisi colibri" );
  24.      document.close;
  25.      return true;
  26.     }
  27.     return false;
  28.    }
  29.    else
  30.    {
  31.     document.write("merci d'avoir choisi colibri" );
  32.     return true;
  33.    }
  34.    return false;
  35.   }
  36.   else
  37.   {
  38.    document.write("Merci d'avoir choisi colibri" );
  39.    document.close();
  40.    return true;
  41.   }
  42.   return false;
  43.  }
  44.  else
  45.  {
  46.   document.write("Merci d'avoir choisi colibri" );
  47.   document.close();
  48.   return true;
  49.  }
  50.  return false;
  51. }


 
Merci d'avance de vos réponse.

mood
Publicité
Posté le 29-11-2007 à 11:02:09  profilanswer
 

n°1650711
SICKofitAL​L
misanthrope
Posté le 29-11-2007 à 11:25:16  profilanswer
 

Ton analyse me semble ... douteuse ;) :D

 

Avec tes if imbriqués ca peut pas marcher comme tu le penses.
Essaye ca et tiens moi au courant des éventuels soucis :

Code :
  1. function soumettre()
  2. {
  3. var form = document.formulaire;
  4. var isOK = true;
  5. if (form.Nom.value.length < 1)
  6. {
  7.  alert ("Vous devez renseigner le champ nom !" );
  8.  isOK = false;
  9. }
  10. if (form.Adresse.value.length < 1)
  11. {
  12.  alert ("Vous devez renseigner le champs adresse !" );
  13.  isOK = false;
  14. }
  15. if (form.email.value.length < 1)
  16. {
  17.  alert ("Vous devez renseigner le champ E-mail !" );
  18.  isOK = false;
  19. }
  20. if (form.refcom.value.length < 1)
  21. {
  22.                 alert ("Vous devez renseigner le champ férérence de la commande" );
  23.  isOK = false;
  24. }
  25. if (form.montant.value.length < 1)
  26. {
  27.  alert ("Vous devez indiquer le montant pour la facturation" );
  28.  isOK = false;
  29. }
  30. if (isOK)
  31. {
  32.  document.write("Merci d'avoir choisi colibri" );
  33.  document.close;
  34.  return true;
  35. }
  36.    return false;
  37. }


Message édité par SICKofitALL le 29-11-2007 à 11:38:08

---------------
We deserve everything that's coming...
n°1650715
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-11-2007 à 11:31:33  profilanswer
 

port'nawak [:cupra]
Si tu rencontres deux erreurs, ton isOk est setté à true et il n'y a plus de message d'erreurs.

n°1650720
SICKofitAL​L
misanthrope
Posté le 29-11-2007 à 11:36:14  profilanswer
 

bah non :D

 

EDIT:
ah si pardon :o
double ! => caÿmal :pfff:

 

EDIT2:
tain relou ces espaces :fou:

 

EDIT3:
d'ailleurs si on voudrait tester mieux que ca les champs il faudrait trimer le contenu et tester une longueur vide ...

Code :
  1. ...
  2. String.prototype.trim = function ()
  3.  {
  4.   return (this.replace (/^\s+/, '').replace (/\s+$/, ''));
  5.  }
  6. ...
  7. function soumettre ()
  8. {
  9. var form = document.formulaire;
  10. var isOK = true;
  11. if (form.Nom.value.trim ().length == 0)
  12. {
  13.  alert ("Vous devez renseigner le champ nom !" );
  14.  isOK = !isOK;
  15. }
  16. .....
  17. .....
 


etc ...

Message cité 1 fois
Message édité par SICKofitALL le 29-11-2007 à 11:40:50

---------------
We deserve everything that's coming...
n°1650725
dante76
Divine Comédie
Posté le 29-11-2007 à 11:42:09  profilanswer
 

Merci SICKofitALL.j'ai compris ce que j'ai fait comme erreur.
Dés que tu met un return=true ca t'arrête la vérification.
Ca y'ai ca marche
Merci beaucoup
+

n°1650763
mIRROR
Chevreuillobolchévik
Posté le 29-11-2007 à 12:49:36  profilanswer
 

SICKofitALL a écrit :

bah non :D
 
EDIT:
ah si pardon :o
double ! => caÿmal :pfff:
 
EDIT2:
tain relou ces espaces :fou:
 
EDIT3:
d'ailleurs si on voudrait tester mieux que ca les champs il faudrait trimer le contenu et tester une longueur vide ...

Code :
  1. ...
  2. String.prototype.trim = function ()
  3.  {
  4.   return (this.replace (/^\s+/, '').replace (/\s+$/, ''));
  5.  }
  6. ...
  7. function soumettre ()
  8. {
  9. var form = document.formulaire;
  10. var isOK = true;
  11. if (form.Nom.value.trim ().length == 0)
  12. {
  13.  alert ("Vous devez renseigner le champ nom !" );
  14.  isOK = !isOK;
  15. }
  16. .....
  17. .....


 
 
etc ...


ca s optimise encore ca :o
tu demandes a ton script de chercher lui meme les inputs du formulaire
tu boucles sur le tableau retourné et ca t evite de faire/ecrire 20 fois les memes operations


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1650769
SICKofitAL​L
misanthrope
Posté le 29-11-2007 à 12:59:01  profilanswer
 

>mIRROR
on est bien d'accord, mais il s'agit juste d'une "v2" du code cité :)


---------------
We deserve everything that's coming...
n°1650792
mIRROR
Chevreuillobolchévik
Posté le 29-11-2007 à 13:41:56  profilanswer
 

j ai vu je t aidais juste pour la v3 :o


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1651224
gatsu35
Blablaté par Harko
Posté le 30-11-2007 à 07:23:03  profilanswer
 

mIRROR a écrit :

j ai vu je t aidais juste pour la v3 :o


tu voudrais pas coder la V2 de formval  :p ?

n°1651280
mIRROR
Chevreuillobolchévik
Posté le 30-11-2007 à 10:14:03  profilanswer
 

gatsu35 a écrit :


tu voudrais pas coder la V2 de formval  :p ?


ouais il faut defruiter ce code de qualité roumaine :o


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
mood
Publicité
Posté le 30-11-2007 à 10:14:03  profilanswer
 

n°1651984
dante76
Divine Comédie
Posté le 03-12-2007 à 09:43:15  profilanswer
 

Cette fois ci je veux gérer d'autres erreurs tel que vérifier un champ numérique en javascript.
Voilà mon code que j'ai mis et qui devrait pourtant marcher
 
while(IsNumeric(form.montant.value)==false)
 {
 alert("Le champ Montant est numérique" );
 form.montant.focus
 }
En algorithme ca se traduit comme ca et je ne comprend pas pourquoi ca ne marche pas.
Si quelqu'un peut m'aider car là je patauge dans la semoule.

n°1652021
SICKofitAL​L
misanthrope
Posté le 03-12-2007 à 10:38:45  profilanswer
 

IsNumeric ? c pas natif comme fonction ca ?
 
Pour ton WHILE je sais pas pourquoi tu fais ca, tu devrais plutot faire un IF déclenché par un onBlur
 
sinon, avec ton code actuel, essaye ca :

Code :
  1. while (isNaN (form.montant.value))
  2. {
  3.   alert ("champ pas numérique !" );
  4.   form.montant.focus ();
  5. }


---------------
We deserve everything that's coming...
n°1652022
mIRROR
Chevreuillobolchévik
Posté le 03-12-2007 à 10:39:34  profilanswer
 

un while [:johneh]
un if suffira hein sinon tu pars dans une vieille boucle infinie et ton script plante [:osweat]
et le truc que tu veux ecrire c est

 


Code :
  1. if(isNaN(parseInt(form.montant.value)))
  2. {
  3. alert("Le champ Montant est numérique" );
  4. form.montant.focus
  5. }
 

mais les alert stune plaie

 

edit: [:benou_grilled]
et en fait ouais le parseInt est dispensable :P


Message édité par mIRROR le 03-12-2007 à 10:41:03

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1652030
dante76
Divine Comédie
Posté le 03-12-2007 à 10:50:52  profilanswer
 

Merci ca marche.Mais pour vérifier qu'un champ soit numérique on m'a toujours appris avec un while et non un if.
Pour parseInt c'est pour convertir ton champ en entier non?

n°1652038
SICKofitAL​L
misanthrope
Posté le 03-12-2007 à 10:58:42  profilanswer
 

dante76 a écrit :

Merci ca marche.Mais pour vérifier qu'un champ soit numérique on m'a toujours appris avec un while et non un if.
Pour parseInt c'est pour convertir ton champ en entier non?

 

un while ou un if n'a pas de rapport à ma connaissance avec le test d'un type de données ou pas, il s'agit plutot d'utiliser la structure la plus approprié ;)
Et ici c'est pas le cas

 

Le parseInt permet de convertir une variable (ou une valeur) en entier (et dans la base numérique de ton choix d'ailleurs). Si il n'y arrive pas, il te renvoit NaN (Not a Number).
isNaN permet de vérifier que la valeur testée ne soit PAS un nombre

 

Sinon oui, les alert sont relous car ils agacent en général l'utilisateur, mais pour le debugage tu peux ;)


Message édité par SICKofitALL le 03-12-2007 à 10:59:34

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Javascript:Pb de gestion d'erreur en javascript

 

Sujets relatifs
Passer une variable php dasn un script javascript[Résolu]Javascript, div, visibility et position
erreur frm-30085 impossible de moduler l'application forms en vu de sa[RESOU] FTP ...erreur bizarre ... [avec commentaires ;o) ]
[Eclipse] trouver l'emplacement d'une erreurEnvoyer dans une autre frame des infos via javascript
Javascript et IE7 : probleme de taille !Probleme avec javascript/ajax
Erreur entre PHP et BD mysqlActiveX en vb + javascript + tableau.
Plus de sujets relatifs à : Javascript:Pb de gestion d'erreur en javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR