Mystère en JavaScript
Trashboat
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai rencontré un étrange problème dans une condition en JavaScript, je l'ai tout bêtement résolu en changeant les testes de places, je cherche juste une explication :
Toutes les variables sont des chaînes de caractères, à part les coordx et coordy qui sont des entiers.
Toutes les variables ont été initialisées auparavant
Elles sont remplies par un formulaire. A chaque envoi, je rempli nom, adresse, cp, ville, et laisse les coordx et y vide, pour pouvoir rentrer dans la condition:
Voici la condition qui est sensée afficher les valeurs de coordx et coordy :
Cependant le code ne rentre pas dans la condition O_o.
Et ça ne peut pas venir d'ailleurs, puisque lorsque je change les testes de places ça marche très bien, exemple :
Dans cet ordre ça marche parfaitement. Et dans n'importe quel ordre, tant que les deux coordx et coordy ne sont pas à la fin.
Si il y a une explication, en avez vous une ? Ou alors est-ce un problème totalement mystique ?
Vous aurez compris qu'ici ce n'est qu'une interrogation, que mon problème est résolu et qu'il n'y a aucune urgence.
Merci beaucoup, bonne journée =)
Vous êtes doux
J'ai rencontré un étrange problème dans une condition en JavaScript, je l'ai tout bêtement résolu en changeant les testes de places, je cherche juste une explication :
Toutes les variables sont des chaînes de caractères, à part les coordx et coordy qui sont des entiers.
Toutes les variables ont été initialisées auparavant
Elles sont remplies par un formulaire. A chaque envoi, je rempli nom, adresse, cp, ville, et laisse les coordx et y vide, pour pouvoir rentrer dans la condition:
Voici la condition qui est sensée afficher les valeurs de coordx et coordy :
if ( nom.value=="" || adresse.value=="" || cp.value=="" || ville.value=="" || coordx.value==0 || coordy.value==0) { alert(coordx.value+"/"+coordy.value); }
Cependant le code ne rentre pas dans la condition O_o.
Et ça ne peut pas venir d'ailleurs, puisque lorsque je change les testes de places ça marche très bien, exemple :
if (coordx.value==0 || coordy.value==0 || nom.value=="" || adresse.value=="" || cp.value=="" || ville.value=="") { alert(coordx.value+"/"+coordy.value); }
Dans cet ordre ça marche parfaitement. Et dans n'importe quel ordre, tant que les deux coordx et coordy ne sont pas à la fin.
Si il y a une explication, en avez vous une ? Ou alors est-ce un problème totalement mystique ?
Vous aurez compris qu'ici ce n'est qu'une interrogation, que mon problème est résolu et qu'il n'y a aucune urgence.
Merci beaucoup, bonne journée =)
Vous êtes doux
A voir également:
- Mystère en JavaScript
- Rmc mystere - Accueil - TV & Vidéo
- Telecharger javascript - Télécharger - Langages
- Boite mystere back market - Accueil - Téléphones
- Colis mystère - Guide
- Afficher un tableau javascript en html ✓ - Forum Javascript
2 réponses
Bonjour
J'ai reproduit le défaut.
À mon humble avis, une (ou plusieurs) de tes variables n'est pas définie, et ton script plante pendant l'évaluation des "ou" du fait de cette variable non définie.
Par contre, si coordx.value est bien défini et vaut bien 0, dans ta deuxième version, l'évaluation de l'expression s'arrête dès le test coordx.value==0. Inutile de continuer puisque la première condition est vraie et que c'est un ou.
Les autres variables ne sont pas testées, donc pas de plantage même si elles n'existent pas.
Si tu regardes dans la console javascript, avec ta première version de l'expression, tu dois trouver une erreur de variable non définie.
J'ai reproduit le défaut.
À mon humble avis, une (ou plusieurs) de tes variables n'est pas définie, et ton script plante pendant l'évaluation des "ou" du fait de cette variable non définie.
Par contre, si coordx.value est bien défini et vaut bien 0, dans ta deuxième version, l'évaluation de l'expression s'arrête dès le test coordx.value==0. Inutile de continuer puisque la première condition est vraie et que c'est un ou.
Les autres variables ne sont pas testées, donc pas de plantage même si elles n'existent pas.
Si tu regardes dans la console javascript, avec ta première version de l'expression, tu dois trouver une erreur de variable non définie.
Ce ne sont pas des variables javascript
Justement, quel est le rapport ? Je t'ai expliqué que le problème venait très probablement de ce que l'une variables de ton script n'étaient pas définies. Or, les variables de ton code javascript sont des variables javascript (Bonjour M. de la Palice), quel rapport avec ton HTML et ton PHP ? Peux-tu montrer la définition de tes variables javascript nom, adresse, cp, etc. ?
Justement, quel est le rapport ? Je t'ai expliqué que le problème venait très probablement de ce que l'une variables de ton script n'étaient pas définies. Or, les variables de ton code javascript sont des variables javascript (Bonjour M. de la Palice), quel rapport avec ton HTML et ton PHP ? Peux-tu montrer la définition de tes variables javascript nom, adresse, cp, etc. ?
Mais la condition marche même si les testes sur les coordx ou y ne sont pas au début. Et j'ai aussi essayé en ne remplissant pas chacune des variables. Et ça marche.
La condition marche également quand je retire les testes sur les coordx et y. C'est à devenir fou cette histoire.
Je suis en stage dans une entreprise de développement web, j'ai demandé son avis à la développeuse avec qui on a regardé le code pendant 20 minutes, elle ne sait pas d'où ça peut venir, et m'a confirmé qu'il n'y avait pas d'erreurs dans mes variables.