Alors voila, j'ai fais une fonction me servant a verifier une date saisie. Lorsque je clique une fois pour valider la saisie, la fonction bloque l'envoi et affiche une alerte si la date n'est pas valide. MAIS, si je reclique une deuxieme fois apres l'alerte sur le bouton servant a valider la date, ben l'ajout est effectué, meme avec une date fausse. Voila, je vous met les 2 fonctions en cause, mais il semblerait que cela vienne plus de la 1ere, car la 2eme renvoie toujours le bon résultat.
function Controle_Pers()
{
if(
document.modifier_pers.nom.value=='' ||
document.modifier_pers.prenom.value=='' ||
document.modifier_pers.naissance.value=='' ||
document.modifier_pers.nat.value=='' ||
document.modifier_pers.biographie.value==''){
alert('Un ou plusieurs champs obligatoires n\'ont pas été remplis');
document.modifier_pers.nom.focus();
}else{
if(Verif_Date(document.modifier_pers.naissance.value) == true){
}if (document.modifier_pers.mort.value == ''){
alert ('submit 1');
alert (Verif_Date(document.modifier_pers.naissance.value));
document.modifier_pers.submit();
}else if (Verif_Date(document.modifier_pers.mort.value) == true){
alert ('submit 2');
document.modifier_pers.submit();
}
}
}
function Verif_Date(Date_verif){
pos_prem_slash = Date_verif.indexOf("/" );
pos_der_slash = Date_verif.lastIndexOf("/" );
var j = Date_verif.substring(0,pos_prem_slash);
var m = Date_verif.substring( (pos_prem_slash +1), pos_der_slash);
var a = Date_verif.substring( (pos_der_slash +1 ) , Date_verif.length);
var now = new Date();
var jour = now.getDate();
var mois = now.getMonth()+1;
var annee = now.getYear();
if (((isNaN(j))||(j<1)||(j>31))){
alert ("Le jour saisi n'est pas valide." );
return(false);
}else if( ((isNaN(m))||(m<1)||(m>12))){
alert ("Le mois saisi n'est pas valide." );
return(false);
}else if(isNaN(a) || (a>annee) || (a.length != 4)){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez l\'annee." );
return(false);
}else if( (a==annee) && (m>mois)){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez le mois." );
return(false);
}else if( (a==annee) && (m==mois) && (j>jour) ){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez le jour." );
return(false);
}else{
return(true);
}
}