Ir para conteúdo

Arquivado

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

flavialieggio

[Resolvido] Aparecer e esconder campos

Recommended Posts

Galera

 

Nao sou mestre em Javascript entao aqui vai minha pergunta:

 

Tenho uma função que calcula a idade pra saber se a pessoa e de menor ou nao .. quando a pessoa for menor, na função eu habilito os campos dos responsaveis pra serem preenchidos e qdo for maior desabilita... mas eu queria que qdo for de menor MOSTRA-SE.. SURGISSE.. os campos dos responsaveis e qdo for maior SUMISSE...rsrsrsss

 

Podem me ajudar?

Função:

<script>
function calcular_idade(data){
	//calculo a data de hoje
	hoje=new Date();
	//calculo a data que recebo
	//descomponho a data em um array
	var array_data = data.split("/")
	//se o array nao tem tres partes, a data eh incorreta
	if (array_data.length!=3)
	{
		alert('Data incorreta. Deve digitar dia, mês e o ano. Exemplo: 21/01/2007');
		return false;
	}
	//comprovo que o ano, mes, dia são corretos
	var ano
	ano = parseInt(array_data[2]);
	if (isNaN(ano))
	{
	   alert('Ano incorreto.');
	   return false;
	}
	var mes
	mes = parseInt(array_data[1]);
	if (isNaN(mes))
	{
	   alert('Mês incorreto.');
	   return false;
	}
	var dia
	dia = parseInt(array_data[0]);
	if (isNaN(dia))
	{
		alert('Dia incorreto.');
		return false;
	}
	//se o ano da data que recebo so tem 2 cifras temos que muda-lo a 4
	/*if (ano<=99)
	   ano +=1900
	 */
	//alert(ano);
	//alert(hoje.getYear());
	//subtraio os anos das duas datas
	idade=hoje.getYear() - ano; //-1 porque ainda nao fez anos durante este ano
	//alert(idade);
	if (idade < 18)
	{
		document.form0.responsavel.disabled = false;
		document.form0.pai.disabled = false;
		document.form0.mae.disabled = false;
		
		return idade;
	}
	else if(idade >= 18)
	{
		document.form0.responsavel.disabled = true;
		document.form0.pai.disabled = true;
		document.form0.mae.disabled = true;

		return idade;
	} 
} 
</script>

Campos:

<form name="form0" ... >
	<input type="text" name="dt_nascimento" onblur="calcular_idade(this.value);">
	<br>
	<br>
	Respondável: <input type="text" name="responsavel" disabled="disabled">
	<br>
	Pai: <input type="text" name="pai" disabled="disabled">
	<br>
	Mãe: <input type="text" name="mae" disabled="disabled">
</form>

{]´s galera!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou englobar os campos com um fieldset, e setar: style.display = 'block', e 'none'.. nesses casos ai?

Os campos continuariam no fonte, mas não apareceriam...só ajustar os if e elses... e mostrar/esconder na hora certa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Willian,

 

Bom nao tentei nao... como ficaria na função??

 

Seria algo do tipo:

 

if (idade <18)
{
document.getElementById("nome do campo").style.visibility = "visible";
}
else if (idade >= 18)
{
document.getElementById("nome do campo").style.visibility = "hidden";
document.form0.nome do campos.value = "";
}

algo assim??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria assim:

<form name="form0" ... >
	<input type="text" name="dt_nascimento" onblur="calcular_idade(this.value);">
	<br>
	<br>
	<fieldset id="menorDeIdade" style="display:none">
	Respondável: <input type="text" name="responsavel" disabled="disabled">
	<br>
	Pai: <input type="text" name="pai" disabled="disabled">
	<br>
	Mãe: <input type="text" name="mae" disabled="disabled">
	</fieldset>
</form>
E da função JS alteraria:

if (idade < 18)
	{
	document.getElementById('menorDeIdade').style.display = 'block';
Veja que já começa com none, pois você ainda vai verificar a idade.

Esse teu script não rodou no meu IE, dá uma olhada.. prefira chamar os elementos pelo getElementById...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Willian

 

Obrigada.. vou testar agora... estava modificando ja e estava chegando a algo parecido.. esqueci apenas de colocar o id do fieldset, mas obrigada mesmo.. vou testar e darei o retorno aqui!!!

 

[]´s Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

willian

 

Testei aqui funcionou perfeito.. acho que a diferença apenas e que nos campos input do codigo que você colocou ainda tem i disable e no meu tirei

 

veja rodou assim:

<form action="#" name="form0">

Data: <input type="text" name="dt_nascimento" onblur="calcular_idade(this.value);">
<br>

<FIELDSET style="display:none;" id="menorIdade">
<font class="font_descricao">Responsável: </font>
<input type="text" name="responsavel">
<br>
<font class="font_descricao">Pai: </font>
<input type="text" name="pai">
<br>
<font class="font_descricao">Mâe: </font>
<input type="text" name="mae">
</FIELDSET>
</form>

Obrigada pela atenção e a ajuda!!! :D http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

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.