Ajuda com Validação de Data JavaScript

1 resposta
D

Fala pessoal,

Alguém pode me ajudar? É o seguinte, eu tinha uma validação de data que quando o usuário digitava a Data de Início, ela validava se a data de Início erá igual a data de hoje. Me foi pedido que eu fizesse uma validação que o usuário pode inserir uma Data de Inicio com até 7 dias pra frente ( ex: hoje é dia 17/04/2009, no campo Data de Inclusão ele pode colocar a data 24/04/2009, se ele colocar 25/04/2009 a função vai travar) minha validação está fazendo isso, só que quando chegar dia 30 vai dar erro pq estou adicionado 7 ao dia de hoje. Como faço pra minha validação funcionar quando a data for 30 ou 31?

Segue meu código abaixo!!!

function validaDataInicio(campo)
{
		if (campo.value!="")
		{
			erro=0;
			hoje = new Date();
			
			dataJsp = new Date();
			dataJsp = campo;
										
			dataAte = new Date();
			dataAte.setDate(hoje.getDate() + 7);
			  
			alert(dataJsp.value);
			alert(dataAte.toLocaleDateString() );
			
			if (dataAte <= dataJsp) {
				alert("A data de inscrição não pode ser superior a 7 dias da data atual.");
				campo.focus();
				return false;
			}else {
			
			
							
				anoAtual = hoje.getFullYear();
				diaAtual = hoje.getDate ();
				mesAtual = hoje.getMonth();
							
				mesAtual = mesAtual + 1;
				
				barras = campo.value.split("/");
				if (barras.length == 3)
				{
				dia = barras[0];
				mes = barras[1];
				ano = barras[2];
				
				resultado = (!isNaN(dia) && (dia > 0)
				&& (dia < 32))
				&& (!isNaN(mes)
				&& (((dia <= diaAtual) && (mes <= mesAtual)) || ((dia >= diaAtual) && (mes < mesAtual)))
				&& (mes > 0)
				&& (mes < 13))
				&& (!isNaN(ano)
				&& (ano.length == 4)
				&& (ano >= 1900 && ano <= anoAtual));
			}else{
				alert("Data inválida.");
				campo.focus();
				return false;
			}
		}
}
}

Muito Obrigado.

1 Resposta

D

Na verdade minha validação é essa aqui!! e não a de cima!!!

function validaDataInicio(campo)
{
		if (campo.value!="")
		{
		erro=0;
		hoje = new Date();
		anoAtual = hoje.getFullYear();
		diaAtual = hoje.getDate();
		mesAtual = hoje.getMonth();
		
		mesAtual = mesAtual + 1;
		
		barras = campo.value.split("/");
		if (barras.length == 3)
		{
		dia = barras[0];
		mes = barras[1];
		ano = barras[2];
		
		resultado = (!isNaN(dia) && (dia > 0)
		&& (dia < 32))
		&& (!isNaN(mes)
		&& (((dia <= diaAtual) && (mes <= mesAtual)) || ((dia >= diaAtual) && (mes < mesAtual)))
		&& (mes > 0)
		&& (mes < 13))
		&& (!isNaN(ano)
		&& (ano.length == 4)
		&& (ano >= 1900 && ano <= anoAtual));
		
		if (!resultado)
		{
		alert("A data de retorno de auxilio doença não pode ser maior que a data de hoje.");
		campo.focus();
		return false;
		}
		}
		else
		{
		alert("Data inválida.");
		campo.focus();
		return false;
		}
		return true;
		}
}

*** Alguem me ajuda por favor!!! hahahaha

Obrigado!!

Criado 17 de abril de 2009
Ultima resposta 17 de abr. de 2009
Respostas 1
Participantes 1