Control dans formulaire

laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 2 déc. 2005 à 14:48
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 2 déc. 2005 à 16:23
Bonjour

j'ai mis dans un formulaire un controle de saisie de date et j'ai un champs ou la date saisie (YYYY/mm/dd) doit être au minimum à j+1 (le lendemain quoi !)
j'ai donc mis ça :
script :
aujourdhui = new Date();
jour = aujourdhui.getDate();
month = aujourdhui.getMonth()+1;
annee = aujourdhui.getYear();
control = ( annee + "-" + month + "-" + jour);
if (annee < 2000)
annee = annee + 1900;

control :
if (theForm.d.value < = control) {
alert("Attention date de début trop petite, Minimum à J+1 !");
theForm.d.focus();
return (false);

j'ai mis ça en novembre, ça a marché impec jusqu'au 30 et dès le 1er decembre = bug, l'alerte s'active même si c'est bon dans le champs1
alors, comme je suis obligé de mettre +1 pour le mois actuel (sinon prends le mois inférieur ? je comprends pas daislleur), ce que je penses c'est qu'au mois "12", il passe à 01 et donc pour le 2005/12/01 il coprend du coup 2005/01/01

-est ce que je comprends bien (en ayant enlever le +1, ça bloque plus au J ni à J-30) ?

-pourquoi doisje mettre +1 pour le mois alors que ça me plante en décembre ?
-aurrai je le même probleme en janvier, car il faudra alors remettre +1 ?

en fait y a t'il un parade ? ou un autre moyen d'obtenir la date pour "control" plus simple, ou disons plus cohérent ?

merci

Laubro

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 déc. 2005 à 15:12
Bonjour,
pas si loin de la solution...
° le mois retourné getMonth va de 0 (janvier) à 11 (décembre) ,
c'est pour ça qu'on fait parfois +1
ensuite, les ??. get?? retourne un nombre, pas un string
et "01" c'est pas pareil que 1.
et par exemple, "7" c'est supérieur à "03".

Cordialement. Bul. ~ Site ~
0
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
2 déc. 2005 à 15:33
Merci des infos, même si ça m'aide pas pour le moment


car 7 est aussi superieur à 3


ce que tu veux dire c'est que ma date etant formatée en 01-02-03-04...pour les mois inferieur à 10, pour janvier il ferra donc bien 0+1=1 et ainsi de suite, mais alors pour quoi 11+1 ne fait pas douze ? si je suis cette idée ?

Laubro
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 déc. 2005 à 15:48
Bonjour,
si,si, 11 + 1 ça fait bien 12 ....
sauf si c'est une variable string, dans ce cas ""11" + 1 = "111" ( concaténation)
et alert(control+"\r\n"+theForm.d.value) ça donne quoi ?
déjà, on doit saisir "aaaa-mm-jj
".

Cordialement. Bul. ~ Site ~
0
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
2 déc. 2005 à 16:04
lol, ma date est bien en aaaa-mm-dd


j'ai remplacé mon alert("Attention date de début trop petite, Minimum à J+1 !");
par ton alert(control+"\r\n"+theForm.d.value) = rien !

c'est peut être pas là qu'il aurrait fallu le mettre ?
je comprends bien le 11+1=111 mais 10+1 = 11 pour novembre et pas 101 ?
je débute, alors encore un peu de mal !

Laubro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 déc. 2005 à 16:23
>>c'est peut être pas là qu'il aurait fallu le mettre ?
ça permet de vérifier/afficher ce qu'il y a dans les zones

je l'aurais mis juste avant if (theForm...
>>je comprends bien le 11+1=111 mais 10+1 = 11 pour novembre et pas 101 ?
pas tout à fait. ça dépend du type de la variable,
si c'est un nombre 10+1=11, 11+1=12...
si c'est un string ( par défaut ) 10+1=101, 11+1=111...
quand on n'est pas sûr du type (dépend de la dernière utilisation) ,
tout en étant sûr du contenu on peut faire Number(variable),
et ça baigne.
>>date etant formatée en 01-02...

faire donc de même avec control.

Cordialement. Bul. ~ Site ~
0
Rejoignez-nous