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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
<script language="javascript" type="text/javascript">
function DonnerFocus(nom) {
document.forms[0].elements[nom].focus();
}
function datecomp(datesaisie,datecompar){
var datedebut=datesaisie.value;
var datefin=datecompar;
//vérification du format - si la date est saisie je commence le travail, ce si se termine à la fin
if (datedebut!="") {
if (datefin=='1'){
//definition des variables champs pour reprendre le focus au bon endroit
var rfocus="date1";
}
else {
var rfocus="date2";
}
//véfification du format de date et +
if (!verifdate(datedebut)) {
alert("Attention soit la date n'est pas correcte, soit elle n'est pas au format JJ/MM/AAAA");DonnerFocus(rfocus);return false;
}
//création d'un tableau ou je range la date début dans trois cases, si il y a des zero je les supprimme
deb = new Array(3);
if (datedebut.substring(0,1)=="0"){
deb[1]=parseInt(datedebut.substring(1,2));
}
else {
deb[1]=parseInt(datedebut.substring(0,2));
}
if (datedebut.substring(3,4)=="0"){
deb[2]=parseInt(datedebut.substring(4,5));
}
else {
deb[2]=parseInt(datedebut.substring(3,5));
}
deb[3]=parseInt(datedebut.substring(6,10));
//si la datefin contient 1 on vient du formulaire dateresadebut donc on compare avec la date du jour
//dans ce cas on récupère un format de date javascript, on le transforme et on le range dans un tableau
//je ne transforme pas la variable datfin que je réutilise plus loin
if (datefin=='1') {
datef=new Date();
fin = new Array(3);
fin[1]=datef.getDate();
fin[2]=datef.getMonth()+1;
fin[3]=datef.getYear();
var message="la date de réservation ne peut être infèrieur à la date du jour";
}
//dans l'autre cas, on arrive du formulaire par dateresafin et datecompar=dateresadebut
//on récupère la dateresadebut et on la range aussi dans un tableau mais comme la datedébut
else {
fin = new Array(3);
if (datefin.substring(0,1)=="0"){
fin[1]=parseInt(datefin.substring(1,2));
}
else {
fin[1]=parseInt(datefin.substring(0,2));
}
if (datefin.substring(3,4)=="0"){
fin[2]=parseInt(datefin.substring(4,5));
}
else {
fin[2]=parseInt(datefin.substring(3,5));
}
fin[3]=parseInt(datefin.substring(6,10));
var message="la date de fin de réservation ne peut être infèrieure à la date de début";
}
//comparaison des dates
if (deb[3]<fin[3]) {
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]<fin[2])){
alert(message);DonnerFocus(rfocus);return false;
}
else {
if ((deb[3]== fin[3]) && (deb[2]==fin[2]) && (deb[1]<fin[1])){
alert(message);DonnerFocus(rfocus);return false;
}
}
}
//si la date de réservation dépasse un an on demande une confirmation
if (datefin!='1'){
if ((deb[3]-fin[3])>1){
if (confirm("attention, vous avez réservé pour plus d'un an, confirmer ?")) {
return true;
}
else {
return false;
}
}
}
return true;
}
}
// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
// Le séparateur est défini dans la variable separateur
function verifdate(d) {
var dateaverifier=d
// rangement de la date dans des variables
if (dateaverifier.substring(0,1)=="0"){
var j=parseInt(dateaverifier.substring(1,2));
}
else {
var j=parseInt(dateaverifier.substring(0,2));
}
if (dateaverifier.substring(3,4)=="0"){
var m=parseInt(dateaverifier.substring(4,5));
}
else {
var m=parseInt(dateaverifier.substring(3,5));
}
var a=parseInt(dateaverifier.substring(6,10));
//si la longueur est différent de 10 , problème
if (dateaverifier.length != 10) {
return false;
}
//les caratères / ne sont pas aux endroits attendus
else {
if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
return false;
}
}
//l'année n'est pa un chiffre
if (isNaN(a)) {
return false;
}
//le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
if ((isNaN(m))||(m<1)||(m>12)) {
return false;
}
//test si il s'agit d'une année bissextile pour accepter le 29/02
if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
return false;
}
}
else {
if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
return false;
}
}
return true;
}
//cette fonction test si caractères numériques
function IsNumberString(NumStr)
{var regEx=/^[0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}
</script> |
Partager