/************************************************************************/ function lifetimer(form){ today = new Date() ano = document.check.ano.value; mes = document.check.mes.value; dia = document.check.dia.value; ano_atual =today.getFullYear(); mes_atual =today.getMonth(); switch(mes) { case '02'://fevereiro if((retcode=(ano-1900)%4 )== 0) // Se o ano é bissexto { if(dia<1 || dia>29) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 29, pois este é o mês de Fevereiro"); return false; } } else if(dia<1 || dia>28)//O ano não é bissexto { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 28, pois este é o mês de Fevereiro"); return false; } break; case '01'://janeiro if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '03'://março if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '05'://maio if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '07'://julho if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '08'://agosto if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '10'://outubro if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '12'://dezembro if(dia<1 || dia>31) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 31"); return false; } break; case '04'://abril if(dia<1 || dia>30) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 30"); return false; } break; case '06'://junho if(dia<1 || dia>30) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 30"); return false; } break; case '09'://setembro if(dia<1 || dia>30) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 30"); return false; } break; case '11'://novembro if(dia<1 || dia>30) { alert("Dia inválido:" +"\n" +"Use valores entre 01 e 30"); return false; } break; default://mes invalido alert("Mês inválido:" +"\n" +"Use valores entre 01 e 12"); return false; } if(ano<1899 || ano>ano_atual) { alert("Ano inválido:" +"\n" +"Use valores entre 1900 e " + ano_atual); return false; } BirthDay = new Date(ano, mes-1 ,dia); if(BirthDay.getTime()>today.getTime()) { alert("A data de nascimento não pode ser posterior à data de hoje"); return false; } idade= (ano_atual - ano); if(mes >mes_atual) idade--; form.elements[4].value= idade; }/******************************************************************************************************/ function calcularIdade(form) { if(document.check.dia.value && document.check.mes.value && document.check.ano.value) lifetimer(form); }
esta função além de calcular data checa os campos para não haver erros no preenchimento do form....
a função calcularIdade serve para o caso de no meio do preenchimento o usuário trocar o dado... para isto declarei assim as tags form
<form name="check">