Bonjour à tous,

j'ai un problème avec le code qui suit, dans le but de mon stage, je dois réaliser un formulaire, prenant une date de naissance et calculant l'âge automatiquement.

j'ai trouvé un code intéressant sur internet, qui marche avec un seul input text, seulement dans mon cas, j'ai besoin d'utiliser des <select>

j'ai donc adapté mon code comme suit, mais cela ne fonctionne pas, après une heure de recherche, toujours rien

Merci d'avance pour votre aide.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
function calcul_age(jour,mois,annee){
 
	var	jour_n = document.getElementById(jour);
	var	mois_n = document.getElementById(mois).value;
	var	annee_n = document.getElementById(annee);
 
	var date_day = new Date();
		jour_day = date_day.getDate();
		mois_day = date_day.getMonth()+1;
		annee_day = date_day.getFullYear();
 
	//calcul age
	var ans; var mois; var age="";
 
	if(mois_day >= mois_n){
		ans =  annee_day - annee_n;
		mois= mois_day - mois_n;
	}else{
		ans =  (annee_day - annee_n) -1;
		mois= mois_day +( 12 - mois_n);
	}
	if(jour_day < jour_n){	
		mois= mois -1;
		if(mois_day < mois_n){
		ans =  ans -1;
		}	
	}
 
	if(ans >0 && ans <=1) age += ans+' an ';
	if(ans >1) age += ans+' ans ';
	if(mois >0) age +=mois+' mois ';
	 // on affiche le résultat
	document.getElementById('reponse').innerHTML = age;
}
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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
<body>
<form name="my_form" method="post" action="">
 
<p> 
 
 <select name="jour" id="jour">           
 <option>1</option>      
 <option>2</option>       
 <option>3</option>       
 <option>4</option>     
 <option>5</option>     
 <option>6</option>      
 <option>7</option>  
 <option>8 </option>    
 <option>9</option>     
 <option>10 </option>       
 <option>11</option>      
 <option>12</option>    
 </select> 
 
 -    
 <select name="mois" id="mois">           
 <option value="01">Janvier</option>      
 <option value="02">Février</option>       
 <option value="03">Mars</option>       
 <option value="04">Avril</option>     
 <option value="05">Mai</option>     
 <option value="06">Juin</option>      
 <option value="07">Juillet</option>  
 <option value="08">Août </option>    
 <option value="09">Septembre</option>     
 <option value="10">Octobre </option>       
 <option value="11">Novembre</option>      
 <option value="12">Décembre</option>    
 </select> 
 
 - 
 
 <select name="année" id="annee" onchange="calcul_age(jour,mois,annee);">  
 <option>1993</option> 
 <option>1994</option>  
 <option>1995</option>  
 <option>1996</option> 
 <option>1997</option>  
 <option>1998</option>  
 <option>1999</option>
 <option>2001</option>  
 <option>2002</option>   
 <option>2003</option>
 <option>2005</option>   
 <option>2006</option>  
 <option>2007</option>  
 <option>2008</option>  
 <option>2009</option> 
 </select> 
 
<br />
<div id="reponse"><!-- la réponse va s'inscrire ici --></div>
 
 
</form>
</body>