[JavaScript] Mon script ne marche pas !!

Résolu/Fermé
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 - 20 nov. 2006 à 09:54
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 - 20 nov. 2006 à 15:20
Bonjour à tous,

J'ai un formulaire tout bête à l'aide duquel on saisit une période : date de début et date de fin. J'ai un script pour vérifier la cohérence des dates saisies. "isDate" est déclarée dans un autre script et marche nickel ... cette fonction dit si la date que tu lui passes en arg en est une !!

Je veux vérifier que les dates entrées en sont bien et qu'elles représentent une période "valide" (càd date de début <= date de fin) d'où la comparaison entre dd et df !!

Voici mon script :
<script language="javascript">
function verifierDates(dateDeb, dateFin){ // tous les tests qui seront effectués lors de la validation du formulaire !

   var dateDeb1 = (dateDeb.value).split("/")
   var dateFin1 = (dateFin.value).split("/")
          // DATES sous la forme AAAAMMJJ (dates comparables)
   var dd = dateDeb1[2]+dateDeb1[1]+dateDeb1[0]
   var df = dateFin1[2]+dateFin1[1]+dateFin1[0]
          // MESSAGE D'ERREUR
   var messageErreur = "ATTENTION ! La saisie de certains champs du formulaire est incorrecte : \n"
   var messageErreurTemoin = messageErreur

          // VARIABLES de DATES : seront = 1 si la date est saisie et existe
   var dateDebutOK = 0
   var dateFinOK = 0

   // DATE de DEBUT
   if(dateDeb.value != ""){
       if (!(isDate(dateDeb1[2], dateDeb1[1], dateDeb1[0]))){
           messageErreur = messageErreur+"\nDate de début incorrecte, référez vous au calendier" ;
       }
       else{
           dateDebutOK = 1 ;
       }
   }

// DATE de FIN
   if(dateFin.value != ""){
       if (!(isDate(dateFin1[2], dateFin1[1], dateFin1[0]))){
           messageErreur = messageErreur+"\nDate de fin incorrecte, référez vous au calendier" ;
       }
       else{
           dateFinOK = 1 ;
       }
   }
   // ================>  COHERENCE des DATES       if((dateDebutOK == 1) && (dateFinOK == 1)){
       if(dd > df){
           messageErreur = messageErreur+"\nLa date de début doit être antérieure à la date de fin";
       }
   }
   // ================>  Message d'erreur ALERT
   if(messageErreur!=messageErreurTemoin){
       alert(messageErreur);
       return false;
   }

}
</script>
Voici les réultats de mes tests :
DEBUT + FIN ===> RESULTAT
20/11/2006 + n'importe quoi ===> true au lieu de false
n'importe quoi + 20/11/2006 ===> true au lieu de false
20/11/2006 + ===> true
+ 20/11/2006 ===> true
n'importe quoi + ===> false
+ n'importe quoi ===> false
n'importe quoi + n'importe quoi ===> false
20/11/2006 + 20/11/2006 ===> true
20/11/2006 + 21/11/2006 ===> true
21/11/2006 + 20/11/2006 ===> true au lieu de false
+ ===> true

Je ne comprends pas d'où vient mon erreur d'autant plus que j'utilise déjà ces tests dans un grand .js pour d'autres formulaires plus complexes et ça marche !!

Si quelqu'un pouvait m'aider ce serait génial !! Merci d'avance pour votre aide ... ;-)
A voir également:

1 réponse

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
20 nov. 2006 à 12:11
A première vue comme ca ca parait pas mal...
Tu pourrais tracer les passages dans ta fonction en insérant des "alert()" avec messages explicites

De cette facon tu verra par ou passe ton algo lors tu tente de valider ton formulaire (et affiche les valeurs courantes dans les alert)

Perso c'est comme ca que je debug et je suis toujours arrivé à mes fins donc..

0
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 14
20 nov. 2006 à 12:58
Coucou,

Merci pour le conseil ... un copain m'a donné le même par téléphone entre-temps et c'est effectivement comme ça que j'ai trouvé qu'il me manquait un script dans lequel isDate était contenu !!

Bref ... merci alert et aussi merci à toi ;-)
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008
20 nov. 2006 à 13:30
Sinon, je ne sais pas si tu utilise firefox ou non, mais le débugger est pas mal (/outils->console javascript) et généralement il trace ce genre d'erreur :)

Bonne suite alors.
0
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 14 > kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
20 nov. 2006 à 15:20
Merci pour le conseil ... c'est vraiment bien ça, dire que j'adoooore firefox et que je ne connaissais même pas ça !!
0