Ir para conteúdo

POWERED BY:

Arquivado

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

Luis Vagner

Alteração em código

Recommended Posts

Pessoal, tenho o código abaixo que faz validação de data, porém eu não estou conseguindo fazer que ele faça a validação somente se o primeiro caracter for diferente de branco. Queria aproveitar também, a data está no formato dd/mm/yyyy, como faço para que se o usuário digitar apenas os ultimos dois digitos do ano ele auto completar deixando com 4 digitos o ano ao sair do campo?

 

Obrigado a todos pela ajuda!

function validaDat(campo,valor) {
	
			var date=valor;
			var ardt=new Array;
			var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
			ardt=date.split("/");
			erro=false;
			if ( date.search(ExpReg)==-1){
				erro = true;
				}
			else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
				erro = true;
			else if ( ardt[1]==2) {
				if ((ardt[0]>28)&&((ardt[2]%4)!=0))
					erro = true;
				if ((ardt[0]>29)&&((ardt[2]%4)==0))
					erro = true;
			}
			if (erro) {
				alert("\"" + valor + "\" não é uma data válida!!!");
				campo.focus();
				campo.value = "";
				return false;
			}
		
			return true;
		}
	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha opinião, creio que o uso de combobox evita muitos erros de digitação e configuração de datas, além de poupar o usuário de ter que digitar e atrasar o procedimento sem a necessidade de extensos códigos de validação (apenas em alguns casos como anos bissextos e data maior do que a atual).

 

Além disso, se o usuário inserir, por exemplo: 12/12/05, não há como saber se é 1005, 1105, 1205...

 

Pelo senso comum, o mais provável é que seja 2005 (mais recente). Mas pode haver erros de qualquer maneira.

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.