Ir para conteúdo
Marcos Vinícius

Função valida data

Recommended Posts

Pessoal,

 

Eu não entendo praticamente nada de javascript mas uso um validador de datas bem antigo e sempre funcionou bem. Acontece que vou usá-lo em um sistema em que a data não é obrigatória mas se o campo está em branco, a validação retorna como data inválida e eu nem consigo mais sair dessa campo. Como eu faço para ignorar a validação se o campo não foi preenchido?

 

function VerificaData(digData) 
{
	var bissexto = 0;
	var data = digData; 
	var tam = data.length;
	if (tam == 10) 
	{
		var dia = data.substr(0,2)
		var mes = data.substr(3,2)
		var ano = data.substr(6,4)
		if ((ano > 1900)||(ano < 2100))
		{

			switch (mes) 
			{
				case '01':
				case '03':
				case '05':
				case '07':
				case '08':
				case '10':
				case '12':
					if  (dia <= 31) 
					{
						return true;
					}
					break
				
				case '04':		
				case '06':
				case '09':
				case '11':
					if  (dia <= 30) 
					{
						return true;
					}
					break
				case '02':
					/* Validando ano Bissexto / fevereiro / dia */ 
					if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) 
					{ 
						bissexto = 1; 
					} 
					if ((bissexto == 1) && (dia <= 29)) 
					{ 
						return true;				 
					} 
					if ((bissexto != 1) && (dia <= 28)) 
					{ 
						return true; 
					}			
					break						
			}
		}
	}	
	alert("A data "+data+" é inválida!");
	document.form1.data_doc.focus()
	return false;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa caracteristica que você deseja se resolve facilmente colocando um condicional no começo da função, validando o campo caso ele esteja vazio:

 

function VerificaData(digData) 
{
  // verifica se o campo está vazio
  if (!digData) {
    return true;
  }

  var bissexto = 0;
  var data = digData; 
  ...
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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