Verification de date jj/mm/aaaa

Soyez le premier à donner votre avis sur cette source.

Snippet vu 28 700 fois - Téléchargée 32 fois

Contenu du snippet

Ce scripte prend en compte les années bissextiles et le nombre de jours, l'avantage c'est qu'il averti l'utilisateur de son erreur.

Source / Exemple :


mot=document.frmInscription.txtDateNaissance.value;
erreur=false;
    if (mot.length!=10){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
    else{
    motjour=mot.substring(0,2);motmois=mot.substring(3,5);
    motan=mot.substring(6,10);motsep=mot.charAt(2)+mot.charAt(5);}
    if (isNaN(motjour+motmois+motan)|| motan>3000 ||motan<1900 || motsep!="//"){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
    else {choix="";    
    if (motan-(parseInt(motan/4)*4)==0){choix="bi"};
    if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/100)*100)==0)
    {choix=""};
    if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/400)*400)==0)
    {choix="bi"}
    switch (motmois){
    case "01":if(motjour<1 || motjour>31){alert("Le mois de Janvier comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case"02":if(choix=="bi"){if(motjour<1 || motjour>29){alert("Le mois de Février comporte 29 jours car l'année choisie est bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 29.");Erreur=true;return;}}
              else{if(motjour<1 || motjour>28){alert("Le mois de Février comporte 28 jours car l'année choisie n'est pas bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 28.");Erreur=true;return;}};
    break;
    case "03":if(motjour<1 || motjour>31){alert("Le mois de Mars comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "04":if(motjour<1 || motjour>30){alert("Le mois de Avril comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "05":if(motjour<1 || motjour>31){alert("Le mois de Mai comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "06":if(motjour<1 || motjour>30){alert("Le mois de Juin comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "07":if(motjour<1 || motjour>31){alert("Le mois de Juillet comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "08":if(motjour<1 || motjour>31){alert("Le mois de Août comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "09":if(motjour<1 || motjour>30){alert("Le mois de Septembre comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "10":if(motjour<1 || motjour>31){alert("Le mois de Octobre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "11":if(motjour<1 || motjour>30){alert("Le mois de Novembre comporte 30 jours, veuillez choisirune date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "12":if(motjour<1 || motjour>31){alert("Le mois de Décembre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    default:alert("Le mois que vous avez entré n'est pas valide. Choisissez un mois compris entre 1 et 12.");Erreur=true;return;	
}
}

Conclusion :


Il suffit de verifier si erreur est egal a true ou false

A voir également

Ajouter un commentaire

Commentaires

Messages postés
10
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 avril 2009

A propos de la question 1 dans le cas ou cela intéresserait un débutant comme moi je me réponds à moi même.

- dans le champs suivant avec :

onFocus="document.forms[FormActif].elements[InputActif].focus()"

on renvoi au champs précédent
- FormActif = valant nom du formulaire
- InputActif = valant id du champs précédent

S'il y a plus simple je suis preneur
Messages postés
10
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 avril 2009

Bonsoir,
Je prépare le site de notre société et dans un calculateur de pénalités pour non paiement à l'échéance (3 méthodes en France) et je veux utiliser le script de traversbourquin.

Question 1 :
- comment conserver le focus à l'input à l'origine de l'erreur ?
J'ai trouvé ceci :
document.getElementById('date9').focus();
avec date9 l'id de l'input mais ne fonctionne pas

Question 2 :
- Aimant bien citer mes sources mais n'étant pas un "pro" que dois-je faire figurer et ou ?

A vous lire et merci
Messages postés
4
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
23 mars 2010

slt je cherche un script qui permet de voir si l'utilisateur est majeur ou non.pour savoir par la suite si (dans le cas d'une réservation d'un restaurant)l'internaute peux ou non consommer de l'alcool

le formulaire :
1page de réservation pour un repas une personne
Au final envoyer un formulaire correct:
a)première partie(coordonnées)
-nom,prénom
-date de naissance valide
-date de réservation futur + heure
b)choix des menus
3 types de menu
1)formule 1 12€ plat et dessert ((désactive entrée)
2)formule 2 18€ entrée +plat + dessert
3)A la carte(liste déroulante,entrée,menu,dessert)
c) choix des boissons
Boissons
soit sans alcool gratuit
vin du patron 5€
selection vin 10€

Apero et digestif 2,5€
Si personne mineur,nepeut pas choisir les boisons ce sera sans alcool et pas de digestif appero
Si la datr de l'anniverssaire == date de réservation apero offert d'office
Si possible calcule duprix en temps réel
#######################################################################
bouton envoyer (uniquement possible si tt est rempli correctement)

voila merci pour toute aide
Messages postés
3
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
11 décembre 2009

Bonjour,

Je cherchais un moyen de valider une date pour mon formulaire et je suis tombée par hasard sur ce script. Je tenais à féliciter l'auteur car le script fonctionne à merveille et est très facile à adapter.
Alors encore bravo.!!
Messages postés
1
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
1 août 2007

Salut !
Moi aussi j'ai une autre question : et si les dates étaient séparé en trois champ : comme ceci ?
je n'ai pas de script pour tester la validité de ce formulaire. et dans la fonction "validation" il n'y a pas de test de validité de la date.

<form action="fic.php" name="formulaire" onsubmit="return validation();" method="post">
Date de création entre le,
<select name="jourcrea1" class="inputmenuderoul2"><?echo $szMenuJour?></select> / <select name="moiscrea1" class="inputmenuderoul2"><?echo $szMenuMois?></select> / <select name="anneecrea1" class="inputmenuderoul2"><?echo $szMenuAnnee?></select>,

----

Effacer <">,
Rechercher<">

</form>

Besoin d'aide d'urgence !
Merci beaucoup !
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.