controle de date

controle de date - HTML/CSS - Programmation

Marsh Posté le 07-05-2003 à 16:02:25    

J'ai un formulaire avec des dates que je fais saisir par deux select (jour et mois) et un text !
 
Je voudrais ensuite faire une fonction JS verif_date() que j'exécuterai sur onSubmit et qui vérifira si je n'ai pas des 31 avril ou 30 février !
 
Seulement, étant débutant en js, je ne vois pas comment écrire la fonction : pourriez-vous m'aiguiller dans ma tâche SVP ?

Reply

Marsh Posté le 07-05-2003 à 16:02:25   

Reply

Marsh Posté le 07-05-2003 à 16:41:56    

Je ne sais pas faire de js, mais ca n'a pas l'air compliqué [:spamafote]
je te le fais facon moi meme :

Code :
  1. bool yatilcettedate(int jour, int mois, int annee)
  2. {
  3.   switch(mois)
  4.   {
  5.     case 2:
  6.     //fevrier je sais jamais, faut faire un truc avec les années
  7.     //bisextiles, mais la j'ai jamais capté...
  8.     case 4,6,9,11:
  9.         if ((jour > 30) OR (jour <= 0))
  10.         { return false;}
  11.         break;
  12.     case 1,3,5,7,8,10,12:
  13.         if ((jour > 31) OR (jour <= 0)
  14.         { return false;}
  15.         break;
  16.    }
  17.    return TRUE;
  18. }

Reply

Marsh Posté le 07-05-2003 à 16:45:41    

Je suis pas sur de ce que je t'ai donné, donc si quelqu'un d'autre peut donner son avis, c'est parfait...
 
edit: en fait tu es déja parti mon cher nero27...
Moi je pars en week end aussi, et je reviens que lundi, donc j'espere que ca t'aura suffit... A+


Message édité par backdafuckup le 07-05-2003 à 16:47:49
Reply

Marsh Posté le 12-05-2003 à 09:47:37    

merci mon petit backdafuckup :jap:
 
Je teste et adapte ça de suite et je te dis ce que ça donne ensuite ;)

Reply

Marsh Posté le 12-05-2003 à 09:56:52    

Pour mois, il faut pas plutot que j'utilise document.form[0].mois.value ?

Reply

Marsh Posté le 12-05-2003 à 10:15:02    

La je ne peux pas t'aider, je n'ai jamais fait de javascript...

Reply

Marsh Posté le 12-05-2003 à 10:18:36    

backdafuckup a écrit :

La je ne peux pas t'aider, je n'ai jamais fait de javascript...


de toute façon, j'ai dit une connerie, ça, c'est ce que je dois mettre en paramètre ;)

Reply

Marsh Posté le 12-05-2003 à 11:04:38    

Ca fonctionne pas, mais je pense que je ne devrais pas avoir trop de prooblèmes à corriger ;)

Reply

Marsh Posté le 12-05-2003 à 11:09:30    

nero27 a écrit :

Ca fonctionne pas, mais je pense que je ne devrais pas avoir trop de prooblèmes à corriger ;)


Je t'ai donné un squelette de programme, dont je n'étais meme pas sur en plus. A toi de l'adapter à tes besoins [:spamafote]

Reply

Marsh Posté le 12-05-2003 à 11:12:31    

backdafuckup a écrit :


Je t'ai donné un squelette de programme, dont je n'étais meme pas sur en plus. A toi de l'adapter à tes besoins [:spamafote]


C'est ce que je suis en train de faire ;)
 
merci de ton aide :jap:

Reply

Marsh Posté le 12-05-2003 à 11:12:31   

Reply

Marsh Posté le 12-05-2003 à 11:15:04    

Pour la verif des années bisextiles il faut que :  
 

Code :
  1. ((annee%4==0) && ((annee%100 !=0)||(annee%400==0)))


---------------
NP :
Reply

Marsh Posté le 12-05-2003 à 11:17:18    

walli a écrit :

Pour la verif des années bisextiles il faut que :  
 

Code :
  1. ((annee%4==0) && ((annee%100 !=0)||(annee%400==0)))




ok, merci, c'est très gentil :jap:
 
Par contre, en js, est-ce qu'on peut mettre plusieurs valeurs à un même case comme l'a fait backdafuckup ?

Reply

Marsh Posté le 12-05-2003 à 11:23:02    

nero27 a écrit :


Par contre, en js, est-ce qu'on peut mettre plusieurs valeurs à un même case comme l'a fait backdafuckup ?


 
jamais testé... si ça ne marche pas, tu n'as plus qu'à passer par un if  [:spamafote]


Message édité par walli le 12-05-2003 à 11:23:16

---------------
NP :
Reply

Marsh Posté le 12-05-2003 à 11:23:17    

pour l'instant, je suis arrivé à ça, mais ça ne fonctionne pas :

Code :
  1. function verif_date(jour, mois, annee)
  2. {
  3.     switch(mois)
  4.     {
  5.         case "février":
  6.             if (jour > 29)
  7.             {
  8.              alert(veuillez vérifier la validité de vos dates);
  9.              return false;
  10.             }
  11.             break;
  12.         case "avril","juin","septembre","novembre":
  13.             if ((jour > 30) || (jour <= 0))
  14.             {
  15.                 alert(veuillez vérifier la validité de vos dates);
  16.                 return false;
  17.             }
  18.             break;
  19.         case "janvier","mars","mai","juillet","août","octobre","décembre":
  20.             if ((jour > 31) || (jour <= 0)
  21.             {
  22.                 alert(veuillez vérifier la validité de vos dates);
  23.                 return false;
  24.             }
  25.             break;
  26.         default : return true;
  27.      }
  28. }


Message édité par nero27 le 12-05-2003 à 11:23:43
Reply

Marsh Posté le 12-05-2003 à 11:26:32    

nero27 a écrit :

pour l'instant, je suis arrivé à ça, mais ça ne fonctionne pas :

Code :
  1. function verif_date(jour, mois, annee)
  2. {
  3.     switch(mois)
  4.     {
  5.         case "février":
  6.             if (jour > 29)
  7.             {
  8.              alert(veuillez vérifier la validité de vos dates);
  9.              return false;
  10.             }
  11.             break;
  12.         case "avril","juin","septembre","novembre":
  13.             if ((jour > 30) || (jour <= 0))
  14.             {
  15.                 alert(veuillez vérifier la validité de vos dates);
  16.                 return false;
  17.             }
  18.             break;
  19.         case "janvier","mars","mai","juillet","août","octobre","décembre":
  20.             if ((jour > 31) || (jour <= 0)
  21.             {
  22.                 alert(veuillez vérifier la validité de vos dates);
  23.                 return false;
  24.             }
  25.             break;
  26.         default : return true;
  27.      }
  28. }




Tu testes pas les années bisextiles pour le mois de février ?
 
Et c'est quoi qui ne marche pas ? Ya une erreur de compilation ou la fonction ne retourne rien ?
 

Reply

Marsh Posté le 12-05-2003 à 11:35:24    

backdafuckup a écrit :


Tu testes pas les années bisextiles pour le mois de février ?
 
Et c'est quoi qui ne marche pas ? Ya une erreur de compilation ou la fonction ne retourne rien ?
 
 


les années bissextiles, je les mettrai qd tout marchera ;)
 
Sinon, la barre de statut m'indique une erreur dans la page !

Reply

Marsh Posté le 12-05-2003 à 11:38:52    

nero27 a écrit :


les années bissextiles, je les mettrai qd tout marchera ;)
 
Sinon, la barre de statut m'indique une erreur dans la page !


je répete j'y connais rien en js, mais ya des trucs qui me choquent un peu...
 
alert(veuillez vérifier...);
 
c'est pas plutot alert("veuillez vérifier..." );
 
et l'enchainement des case tu es sur que c'est comme ca ?
 
Après je vois pas d'autres trucs choquants [:spamafote], je vois pas pourquoi  il y a une erreur.. Il détaille pas l'erreur ? Ah oui mais je suis con, j'ai rien dit...

Reply

Marsh Posté le 12-05-2003 à 11:41:52    

backdafuckup a écrit :


je répete j'y connais rien en js, mais ya des trucs qui me choquent un peu...
 
alert(veuillez vérifier...);
 
c'est pas plutot alert("veuillez vérifier..." );
 
et l'enchainement des case tu es sur que c'est comme ca ?
 
Après je vois pas d'autres trucs choquants [:spamafote], je vois pas pourquoi  il y a une erreur.. Il détaille pas l'erreur ? Ah oui mais je suis con, j'ai rien dit...


Tu veux dire quoi pour l'enchainement des case ? tu verrais ça comment ?

Reply

Marsh Posté le 12-05-2003 à 11:42:06    

nero27 a écrit :

pour l'instant, je suis arrivé à ça, mais ça ne fonctionne pas :

Code :
  1. function verif_date(jour, mois, annee)
  2. {
  3.     switch(mois)
  4.     {
  5.         case "février":
  6.             if (jour > 29)
  7.             {
  8.              alert(veuillez vérifier la validité de vos dates);
  9.              return false;
  10.             }
  11.             break;
  12.         case "avril","juin","septembre","novembre":
  13.             if ((jour > 30) || (jour <= 0))
  14.             {
  15.                 alert(veuillez vérifier la validité de vos dates);
  16.                 return false;
  17.             }
  18.             break;
  19.         case "janvier","mars","mai","juillet","août","octobre","décembre":
  20.             if ((jour > 31) || (jour <= 0)
  21.             {
  22.                 alert(veuillez vérifier la validité de vos dates);
  23.                 return false;
  24.             }
  25.             break;
  26.         default : return true;
  27.      }
  28. }




 
les case avec plusieurs choix, suis pas persuadée, essaye avec des ifs.
sinon, dans tes alerts, ajoute des guillemets !
 
edit : [:grilled]


Message édité par walli le 12-05-2003 à 11:42:36

---------------
NP :
Reply

Marsh Posté le 12-05-2003 à 11:43:34    

Ah j'avais bien raison, pour les alert il faut des guillemets...
Au pire pour les case, fais des if à la place, comme te l'a conseillé walli, sinon faut chercher sur google la syntaxe du case en js...

Reply

Marsh Posté le 12-05-2003 à 11:44:39    

y'a pas de fonction qui te calcule directement si une variable est une date valide en javascript?


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 12-05-2003 à 11:45:27    

oui, vous avez raison pour les guillemets !
 
Pour les case à plusieurs choix, j'étais pas sûr !
 
Je vais essayer avec des if : je vous tiens au courant ;)

Reply

Marsh Posté le 12-05-2003 à 11:48:51    

Urd-sama a écrit :

y'a pas de fonction qui te calcule directement si une variable est une date valide en javascript?


Je sais pas du tout : je vais regarder par là aussi :jap:

Reply

Marsh Posté le 12-05-2003 à 11:55:09    

paske je voulais faire la meme chose que toi pour de l'asp, jusqu'à ce que je découvre qu'une fonction existait et qu'elle faisait tout toute seule comme une grande! (mais bon, cela dit je doute un peu que ca existe en jscript)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 12-05-2003 à 11:57:47    

Urd-sama a écrit :

paske je voulais faire la meme chose que toi pour de l'asp, jusqu'à ce que je découvre qu'une fonction existait et qu'elle faisait tout toute seule comme une grande! (mais bon, cela dit je doute un peu que ca existe en jscript)


et bien, je suis en train de feuilleter les pages du bouquin sur l'objet date : je te dirais ce que ça donne ;)

Reply

Marsh Posté le 12-05-2003 à 12:05:12    

j'ai feuilleté le mien et je n'y ai rien trouvé en tout cas (mais bon, c'est pas le + complet qui existe)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 12-05-2003 à 12:07:35    

Urd-sama a écrit :

j'ai feuilleté le mien et je n'y ai rien trouvé en tout cas (mais bon, c'est pas le + complet qui existe)


ouais, moi non plus (et il est pourtant complet : 900 pages) : il est pas terrible cet objet date :/

Reply

Marsh Posté le 12-05-2003 à 12:12:32    

j'essaie comme ça et ça ne fonctionne pas non plus :

Code :
  1. function verif_date(jour, mois, annee)
  2. {
  3.     switch(mois)
  4.     {
  5.         case "février":
  6.             if (jour > 29)
  7.             {
  8.              alert("veuillez vérifier la validité de vos dates" );
  9.              return false;
  10.             }
  11.             break;
  12.         case "avril":
  13.             if ((jour > 30) || (jour <= 0))
  14.             {
  15.                 alert("veuillez vérifier la validité de vos dates" );
  16.                 return false;
  17.             }
  18.             break;
  19.         case "janvier":
  20.             if ((jour > 31) || (jour <= 0)
  21.             {
  22.                 alert("veuillez vérifier la validité de vos dates" );
  23.                 return false;
  24.             }
  25.             break;
  26.         default : return true;
  27.      }
  28. }


 

Code :
  1. <form method="POST" name="rech" action="post_recherche.php?<? echo SID; ?>" onSubmit="verif_date(document.rech.jour.value,document.rech.mois.value,document.rech.annee.value);">


 
A votre avis, mon appel à la fonction est correct ou pas ?

Reply

Marsh Posté le 12-05-2003 à 12:18:00    

Met un

Code :
  1. alert("jour : "+jour+", mois : "+mois+" ,annee : "+annee);


au début de ta fonction, tu verras déjà s'il passe dedans et ce qu'il te récupère comme valeurs.


---------------
NP :
Reply

Marsh Posté le 12-05-2003 à 12:21:14    

effectivement, je ne rentre pas dans la fonction : c'est bizarre :heink:

Reply

Marsh Posté le 12-05-2003 à 13:26:49    

Certains sauraient-ils me dire pourquoi je ne rentre pas dans la fonction ?
 
(UP déguisé ;))

Reply

Marsh Posté le 12-05-2003 à 14:06:35    

je t'aurais bien aidé, mais la, c'est du javascript pur, et j'y peux pas grand chose...
(c'est aussi un up déguisé, mais on dira rien hein ;))

Reply

Marsh Posté le 12-05-2003 à 14:08:36    

backdafuckup a écrit :

je t'aurais bien aidé, mais la, c'est du javascript pur, et j'y peux pas grand chose...
(c'est aussi un up déguisé, mais on dira rien hein ;))


 :jap:

Reply

Marsh Posté le 12-05-2003 à 14:14:39    

t'es sur que le ';' est nécessaire à la fin de l'appel de ta fonction, étant donné que c'est dans ton onSubmit ?

Reply

Marsh Posté le 12-05-2003 à 14:18:23    

backdafuckup a écrit :

t'es sur que le ';' est nécessaire à la fin de l'appel de ta fonction, étant donné que c'est dans ton onSubmit ?


j'ai essayé les deux !
 
Sinon, derniers essais, j'ai enlevé les arguments et ai testé directement les valeurs :

Code :
  1. function verif_date()
  2. {
  3.     switch(document.rech.mois.value)
  4.     {
  5.         case "février":
  6.             if (document.rech.jour.value > 29)
  7.             {
  8.              alert("veuillez vérifier la validité de vos dates" );
  9.              return false;
  10.             }
  11.             break;
  12.         case "avril":
  13.             if ((document.rech.jour.value > 30) || (document.rech.jour.value <= 0))
  14.             {
  15.                 alert("veuillez vérifier la validité de vos dates" );
  16.                 return false;
  17.             }
  18.             break;
  19.         case "janvier":
  20.             if ((document.rech.jour.value > 31) || (document.rech.jour.value <= 0)
  21.             {
  22.                 alert("veuillez vérifier la validité de vos dates" );
  23.                 return false;
  24.             }
  25.             break;
  26.         default : return true;
  27.      }
  28. }

Reply

Marsh Posté le 12-05-2003 à 14:19:03    

Je n'arrive toujours pas à entrer dans la fonction :sweat:

Reply

Marsh Posté le 12-05-2003 à 14:20:52    

Tu l'avais placé ou ton test ? avant ou après le switch ?
Teste si tu rentre dans la fonction, pas forcément dans le switch(je ne sais pas ce que tu as testé :/).
Et concentre toi, à mon avis, sur l'appel de ta fonction, ca doit etre la le problème... Peut etre qu'il ne trouve pas la fonction, je sais pas quelle est l'architecture des fichiers en javascript, tu dois le savoir mieux que moi...

Reply

Marsh Posté le 12-05-2003 à 14:22:52    

fais voir ton source entier !
en MP si jamais c'est trop lourd...


---------------
NP :
Reply

Marsh Posté le 12-05-2003 à 14:24:21    

backdafuckup a écrit :

Tu l'avais placé ou ton test ? avant ou après le switch ?
Teste si tu rentre dans la fonction, pas forcément dans le switch(je ne sais pas ce que tu as testé :/).
Et concentre toi, à mon avis, sur l'appel de ta fonction, ca doit etre la le problème... Peut etre qu'il ne trouve pas la fonction, je sais pas quelle est l'architecture des fichiers en javascript, tu dois le savoir mieux que moi...


j'ai bien mis le test avant le switch et ça ne rentre pas dedans :/
 
Sinon, je suis en train de regarder mon appel à la fonction !

Reply

Marsh Posté le 12-05-2003 à 14:24:51    

walli a écrit :

fais voir ton source entier !
en MP si jamais c'est trop lourd...
 


ok, je t'envoie ça !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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