Jump to content

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;
}

 

Share this post


Link to post
Share on other 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; 
  ...
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.