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
|
function TestDate(source, args){
//on supprimer les espaces de la saisie
var lValue = args.Value.replace(/ /g,"")
// si le champ n'est pas vide
if (lValue != ""){
//format dd/mm/yy, dd.mm.yy, dd-mm-yy
var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
//format dd/mm/yyyy, dd/mm/yyyy, dd.mm.yyyy, dd-mm-yyyy
var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
//si la date n'est pas conforme à un des deux formats
if ( (reg1.test(lValue) == false) && (reg2.test(lValue) == false) ) {
//on modifie le errormessage du validator
source.attributes("errormessage").nodeValue = "La date est invalide, le format doit être jj/mm/aaaa ou jj/mm/aa";
args.IsValid = false;
}else{
//test de l'intervalle
//on éclate la date
var date = lValue.split("/");
if ( date.length == 1 ) {
date = lValue.split("-");
if ( date.length == 1 ) { date = lValue.split("."); }
}
//on construit les dates
var Now = new Date();
var MaxDate = new Date(Now.getFullYear()-2,11, 31); // 31/12/anne en cours - 2
var MinDate = new Date(Now.getFullYear()-25,00, 01);// 01/01/annee en cours - 25
var DateSaisie = new Date(date[2], date[1]-1, date[0]);
// MinDate <= DateSaisie <= MaxDate ?
if ( (MinDate <= DateSaisie) && (DateSaisie <= MaxDate) ) {
args.IsValid = true;
}else{
source.attributes("errormessage").nodeValue = "L'enfant doit avoir entre 2 et 25 ans au 31 Décembre de l'année en cours";
args.IsValid = false;
}
}
}else{
source.attributes("errormessage").nodeValue = "La date de naissance est obligatoire.";
args.IsValid = false;
}
} |
Partager