Calculer l'âge (controle de formulaire)

Fermé
Lilou75 - Modifié le 1 nov. 2021 à 10:55
 Lilou75 - 7 nov. 2021 à 20:25
Bonjour,
J'ai un formulaire qui demande nom et date de naissance.
je souhaite controler l'âge. Pour cela, j'ai besoin de la variable age en JS à partir de la date de naissance du formulaire et la date du jour...


<!DOCTYPE html>
<html>
<head>
<title>Titre du document</title>
</head>
<body>
<h2 style="text-align: center"> Formulaire d'inscription </h2>
<form name="contact" action="/submit.php" onsubmit="return verif()" method="post">
<div>
<label for="nom">Nom:</label>
<input type="text" id="nom" size="60" name="nom">
</div>
<br>
<div>
<label for="date_n">Date de naissance:</label>
<input type="date" id="date_n" name="date_n">
</div>
<br>
<div class="buttons">
<input type="submit" value="Envoyer" name="Envoyer">
</div>
</form>
<script>
function verif()
{
var nom = document.forms["contact"]["nom"];
var date_n = document.forms["contact"]["date_n"];

if (nom.value == "")
{ if(nom.value == "")
{alert("Mettez votre nom.");
nom.focus();
return false;
} }

}
</script>
</body>
</html>

2 réponses

jordane45 Messages postés 38262 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 octobre 2024 4 693
1 nov. 2021 à 11:00
Bonjour,
Qu'as tu essayé ?
Sur quoi bloques tu ?
As tu cherché ? ( voir ici : https://www.google.com/search?q=Calculer+la+diff%C3%A9rence+entre+2+dates+en+Javascript )
0
dans le script jS, j'ai tenté sans succès

je défini la date actuelle :
var dateactuelle = new Date();

je fais la différence entre date actuelle et date de naissance issue du form :
var difference = dateactuelle - date_n;

Le résultat doit être en ms, si j'ai bien compris.
18 ans correspond à 567648000000 ms
(je me fiche de la précision)
donc, si la différence est inférieure à 567648000000 , je renvoi unee erreur:
if (difference.value < "567648000000")                                  
{alert("Vous êtes mineur.");
date_n.focus();
return false;
}


Ce qui me donne en global :


<!DOCTYPE html>
<html>
<head>
<title>Titre du document</title>
</head>
<body>
<h2 style="text-align: center"> Formulaire d'inscription </h2>
<form name="contact" action="/submit.php" onsubmit="return verif()" method="post">
<div>
<label for="nom">Nom:</label>
<input type="text" id="nom" size="60" name="nom">
</div>
<br>
<div>
<label for="date_n">Date de naissance:</label>
<input type="date" id="date_n" name="date_n">
</div>
<br>
<div class="buttons">
<input type="submit" value="Envoyer" name="Envoyer">
</div>
</form>
<script>
function verif()
{
var nom = document.forms["contact"]["nom"];
var date_n = document.forms["contact"]["date_n"];
var dateactuelle = new Date();
var difference = dateactuelle - date_n;

if (difference.value < "567648000000")
{alert("Vous êtes mineur.");
date_n.focus();
return false;
}


if (nom.value == "")
{ alert("Mettez votre nom.");
nom.focus();
return false;
}

}
</script>
</body>
</html>
0
Bonjour comme précédemment avez vous fait vos propres recherches.
Ici sur l'objet Date en JavaScript et ses méthodes?
Effectivement utiliser le timestamp UNIX permet des calculs simples(car on se passe des conversions en base soixante) car ils seront en base décimales mais dans ce cas il faut bien sûr utiliser le calcul avec les valeurs décimales (et non l'objet comme vous le faites dans votre code, c'ets à dire faire des opérations avec des valeurs de même type(voir ce qu'est un type de variable/données) parce que nombre de paniers + nombre de pommes dans le panier ne donne pas le nombre de pommes finales mais simplement un calcul qui n'a aucun sens...

L'objet Date() en JavaScript(voir plus précisément les méthodes qui sont des fonctions internes à l'objet tandis qu'un objet est un groupe logique qui regroupe ce que l'on veut, ici il est dit natif(incorporé au langage) et permet de gérer des informations sur la date. Et là ce que vous faites un peu comme 'mon calendrier - 10 secondes' ce qui n'a bien sûr aucun sens ^^

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Date

https://www.commentcamarche.net/contents/571-javascript-l-objet-date

ps: l'objet Date() est une bonne introduction au paradigme de la programmation Orienté Objet(POO et OOP en anglais) car il est assez compréhensible et factuel/pratique sur son thème(la gestion de dates, durées etc...) mais bien sûr ce n'est qu'un cas d'utilisation parmi d'autres qui définissent toute(oui toute) la programmation moderne(depuis + de 30 ans)

https://codes-sources.commentcamarche.net/faq/10795-la-poo-en-javascript-par-un-exemple-pratique-et-visuel

un peu plus complet:
https://buzut.net/programmation-orientee-objet-javascript/

et bien sûr faites vos ^propres recherches si cela ne suffit pas ;)
0
Lilou75 > Artos
7 nov. 2021 à 20:25
bonjour,
un petit coup de main sur un autre forum m'a permis d'avancer un peu plus tout en comprenant ce que je codais.
Merci pour ces liens.
0