Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

amanda12

[Resolvido] Retirar o foco e calcular a idade

Recommended Posts

Pessoal preciso fazer em uma textbox no php um efeito que ao colocar a data de nascimento quando esse campo perder o foco ele ao lado calcula automaticamente a idade da pessoa atual tem como fazer?

 

Gostaria do passo a passo estou começando no javascript.

 

 

Grata!

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o evento onblur

Compartilhar este post


Link para o post
Compartilhar em outros sites

é so acrescentar este evento no campo de texto e ele chamará a sua funcao que calcula a idade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem "simples":

<input type="text" id="nascimento" onkeypress="mascara(this,mdata)" maxlength="10" name="nascimento" onblur="calculaIdade()" />
<span id="idade"></span>

<script type="text/javascript">

function calculaIdade()
{
	var nascimento = document.getElementById('nascimento');

	data = new Date(); // guardando o objeto data
	ano = data.getFullYear(); // a variável ano vai guardar o ano atual, pegando do relógio do sistema

	var idade = ano - nascimento.value.substr(6,10); // substring para verificar o ano digitado pelo user
	alert(idade); // explode um alerta na tela com a idade calculada
	document.getElementById('idade').innerHTML = idade;
	
}
function mascara(o,f){
	v_obj=o
	v_fun=f
	setTimeout("execmascara()",1)
}
function execmascara(){
	v_obj.value=v_fun(v_obj.value)
}
function mdata(v){ // máscara para o user digitar sempre dd/mm/aaaa
	v=v.replace(/\D/g,"");					//Remove tudo o que não é dígito
	v=v.replace(/(\d{2})(\d)/,"$1/$2");	   
	v=v.replace(/(\d{2})(\d)/,"$1/$2");	   
											 
	v=v.replace(/(\d{2})(\d{2})$/,"$1$2");
	return v;
}
</script>
Para começar à ficar bom.. você precisa incluir o cálculo do mês para verificar a idade da pessoa, impedir que ela digite valores absurdos.. ou um ano de nascimento maior que o atual..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal era isso que eu estou precisando porém aki deu erro na linha 13

 

idade = ano - nascimento.value.substr(6,10); // substring para verificar o ano digitado pelo user

 

ai não acontece nada montei assim ó

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<script type="text/javascript">

 

function calculaIdade()

{

var nascimento = document.getElementById('nascimento');

 

data = new Date(); // guardando o objeto data

ano = data.getFullYear(); // a variável ano vai guardar o ano atual, pegando do relógio do sistema

 

idade = ano - nascimento.value.substr(6,10); // substring para verificar o ano digitado pelo user

alert(idade); // explode um alerta na tela com a idade calculada

document.getElementById('idade').innerHTML = idade;

 

}

function mascara(o,f){

v_obj=o

v_fun=f

setTimeout("execmascara()",1)

}

function execmascara(){

v_obj.value=v_fun(v_obj.value)

}

function mdata(v){ // máscara para o user digitar sempre dd/mm/aaaa

v=v.replace(/\D/g,""); //Remove tudo o que não é dígito

v=v.replace(/(\d{2})(\d)/,"$1/$2");

v=v.replace(/(\d{2})(\d)/,"$1/$2");

 

v=v.replace(/(\d{2})(\d{2})$/,"$1$2");

return v;

}

</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

 

<body>

<input type="text" id="nascimento" onkeypress="mascara(this,mdata)" maxlength="10" name="nascimento" onblur="calculaIdade()" />

<span id="idade"></span>

 

 

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa... coloca o var.

var idade = ano - nascimento.value.substr(6,10); // substring para verificar o ano digitado pelo user
Eu estava testando apenas no FF3..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra maneira para quem se interessar:

 

<html><head>
<title></title>

<script type="text/javascript">
function calcIdade(){
var data_nasc = new Date(document.getElementById("data").value);
var data_hoje = new Date();
var diffYear = Math.floor((data_hoje.getTime()-data_nasc.getTime())/31536000000);
//alert(diffYear);

if (diffYear>0 && diffYear <100) {
	document.getElementById('Idade').innerHTML = "("+diffYear+" anos)";
}else{
	alert("Data inválida!");
	document.getElementById('Idade').innerHTML = "";
	document.form1.data.select();	
	return false;
}


} 
</script>

</head>
<body onLoad="document.form1.data.focus();">
<form name="form1" action="" method="post">
Data: <input type="text" name="data" value="09/07/1987" onBlur="calcIdade()"> formato dd/mm/aaaa <span id="Idade"></span>
<br>Nome:<input type="text" name="nome" value="">
<br>

<br><br>
<input type="submit" value=" Enviar ">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal eu sei que é meio chato perguntar, mas eu queria entender o funcionamento desse código

tem uma parte no final que não está comentada tô rachando a cuca aqui pra entender por exemplo:

- como aparece a idade ao lado do campo depois do alert

 

por exemplo... essa parte aqui pra que que serve ?

function mascara(o,f){

v_obj=o

v_fun=f

setTimeout("execmascara()",1) } function execmascara(){

v_obj.value=v_fun(v_obj.value) }

 

Pessoal conto com o apoio de vocês sou novo em Javascript e quero muito aprender...Grande Abraço a Todos !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.