Bonjour,
voila une finction qui vérifie la syntaxe d'une date que j'ai trouvé dans la faq
et que j'ai modifié un peu le code
la fonction marche bien sur ie mais pour fire fox non, il affiche des messages d'erreurs pour des dates valides
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 function CheckDate(idchamp,nomchamp) { var d=document.getElementById(idchamp).value; if(d=='') return true; var amin=1990; // année mini var amax=2020; // année maxi var separateur="-"; // separateur entre jour/mois/annee var j=(d.substring(8)); var m=(d.substring(5,7)); var a=(d.substring(0,4)); var ok=1; if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) { alert("Le jour du champ " + nomchamp +" n'est pas correct."); ok=0; } if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) { alert("Le mois du champ " + nomchamp+" n'est pas correct."); ok=0; } if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) { alert("L'année du champ " + nomchamp + " n'est pas correcte."); ok=0; } if ( ((d.substring(4,5)!=separateur)||(d.substring(7,8)!=separateur)) && (ok==1) ) { alert("Les séparateurs du champ " + nomchamp + " doivent être des "+separateur); ok=0; } if (ok==1) { var d2=new Date(a,m-1,j); j2=d2.getDate(); m2=d2.getMonth()+1; a2=d2.getYear(); if (a2<=100) {a2=1900+a2} if ( (j!=j2)||(m!=m2)||(a!=a2) ) { alert("La date "+d+" n'existe pas !"); ok=0; } } return (ok==1); }
Partager