Ir para conteúdo

POWERED BY:

Arquivado

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

overkill408

Validação Formulário - Ano Bissexto

Recommended Posts

Fala galera, sou novo aqui no forum e estou com uma duvida, fiz um script em JavaScript porém ele não funciona corretamente, alguém sabe onde está o erro ou de que forma devo escrevê-lo?

 

function cad()
				{
					nome_pessoa = document.cadastrar.nome.value;
					e_mail = document.cadastrar.email.value;
					dianascimento = document.cadastrar.dia.value;
					mesnascimento = document.cadastrar.mes.value;
					anonascimento = document.cadastrar.ano.value;
					
					if((nome_pessoa == "")||(e_mail == "")||(dianascimento == "")||(mesnascimento == "")||(anonascimento == ""))
					{
						alert("Existe um ou mais campos em branco");
					}
					
					if(((dianascimento <=0)||(dianascimento>31))||((mesnascimento <=0)||(mesnascimento >12))||(anonascimento <1900))
					{	
						alert("Existe um ou mais campos inválidos");
					}
					
					anoo = anonascimento%4;
					
					if(anoo == 0)
					{
						if(mesnascimento == 02)
						{
							if(dianascimento <=29)
							{
								document.cadastrar.submit();
							}
							else{
								alert("Campo dia do nascimento mês fevereiro inválido");
							}
							
						}
					}
												
						if(anoo != 0)
						{
							if(mesnascimento == 02)
							{
								if(dianascimento <=28)
								{
									document.cadastrar.submit();
								}
								else{
									alert("Campo dia do nascimento mês fevereiro inválido");
								}
							
							}
						
							if((mesnascimento == 01)||(mesnascimento == 03)||(mesnascimento == 05)||(mesnascimento == 07)||(mesnascimento == 08)||(mesnascimento == 10)||(mesnascimento == 12))
							{
								if(dianascimento <=31)
								{
									document.cadastrar.submit();
								}
								else{
									alert("Dia nascimento inválido");
								}
								
							}
						
							if((mesnascimento == 04)||(mesnascimento == 06)||(mesnascimento == 09||(mesnascimento == 11))
							{
								if(dianascimento <=30)
								{
									document.cadastrar.submit();
								}
								else{
									alert("Dia nascimento inválido");
								}
								
							}
											
						}
						
					else{
						alert("alguns campos estao invalidos");
					}
				}

 

Grato, abraços

 

fiquem com Deus

Compartilhar este post


Link para o post
Compartilhar em outros sites

overkill408, você pode fazer esse tipo de validação de várias maneiras.

 

Didaticamente, eu faria conforme mostrado abaixo, mas você poderá criar o algoritmo da maneira mais conveniente ao seu projeto. São inúmeras as possibilidades.

 

Para o fórum (pois muitos usuários poderão ler esse tópico) eu disponibilizo a maneira abaixo:

<html>
<head>
<script type="text/javascript">
function cad() {
nome_pessoa = document.cadastrar.nome;
e_mail = document.cadastrar.email;
dianascimento = document.cadastrar.dia;
mesnascimento = document.cadastrar.mes;
anonascimento = document.cadastrar.ano;

// ---------- Verificações preliminares ----------
if (nome_pessoa.value == "") {
	alert("Por favor, preencha o nome!");
	nome_pessoa.focus();
	return false;
} else if (e_mail.value == "") {
	alert("Por favor, preencha o e-mail!");
	e_mail.focus();
	return false;
} else if (dianascimento.value == "") {
	alert("Dia do nascimento não preenchido!");
	dianascimento.focus();
	return false;
} else if (dianascimento.value <= 0) {
	alert("Dia do nascimento não pode conter valor negativo!");
	dianascimento.focus();
	return false;
} else if (dianascimento.value >= 32) {
	alert("Dia do nascimento não pode conter valor maior do que 31!");
	dianascimento.focus();
	return false;
} else if (anonascimento.value == "") {
	alert("Preencha o ano");
	anonascimento.focus();
	return false;
} else if (anonascimento.value < 0) {
	alert("O ano do nascimento não pode conter valor negativo!");
	anonascimento.focus();
	return false;
}
// --------------------


if (mesnascimento.value=="") {
	alert("Mês do nascimento não preenchido!");
	mesnascimento.focus();
	return false;
} else if (mesnascimento.value <= 0) {
	alert("Mês do nascimento não pode ser valor negativo!");
	mesnascimento.focus();
	return false;
} else if (mesnascimento.value > 12) {
	alert("Mês do nascimento inválido!");
	mesnascimento.focus();
	return false;
//Validar os dias, caso o mês seja fevereiro:
} else if (mesnascimento.value == "02") {
	var anoo = (anonascimento.value%4);
	//alert(anoo);
	//Se for ano bissexto, validar o máximo de dias possível para o mês 02:
	if (anoo == 0) {
		if (dianascimento.value > 29) {
			alert("Dia do nascimento inválido para o mês de fevereiro\nO ano "+anonascimento.value+" é bissexto!");
			dianascimento.focus();
			return false;
		}
	} else {
		if (dianascimento.value > 28) {
			alert("Dia do nascimento inválido para o mês de fevereiro\nO ano "+anonascimento.value+" não é bissexto!");
			dianascimento.focus();
			return false;
		}
	}
//Se não preencher todos os critérios acima, o mês poderá ser qualquer um entre 01 e 12, exceto mês 02:	
} else {
	var meses31dias = new Array("01","03","05","07","08","10","12");
	var mes31 = false;
	
	//Varrer as opções para saber se o mês possui 31 dias:
	for (var iLoop = 0; iLoop <= meses31dias.length; iLoop++) {
		if (mesnascimento.value == meses31dias[iLoop]) {
			mes31 = true;
		}
	}
	
	if (mes31 == true) {
		if (dianascimento.value > 31) {
			alert("Dia do nascimento inválido!\nMáximo: 31 dias para o mês "+mesnascimento.value);
			dianascimento.focus();
			return false;
		}
	} else {
		if (dianascimento.value > 30) {
			alert("Dia do nascimento inválido!\nMáximo: 30 dias para o mês "+mesnascimento.value);
			dianascimento.focus();
			return false;
		}
	}
}
}
</script>

</head>
<body>
<form name="cadastrar" action="" method="post" onsubmit="return cad()">
Nome: <input type="text" name="nome">
<br />E-mail: <input type="text" name="email">

<br /><br />Data de nascimento:
Dia: <input type="text" name="dia">
Mês: <input type="text" name="mes">
Ano: <input type="text" name="ano">

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

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.