Ir para conteúdo

POWERED BY:

Arquivado

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

acdestefani

Verificar se campo foi preenchido com 4 dígitos e maior que 2009

Recommended Posts

Olá pessoal!

Não entendo nada de JavaScript e onde trabalho me pediram, com urgência, pra validar um campo chamado "recadastramento" do formulário "cadastrodecandidatos" da seguinte forma:

 

O campo é específico para digitar o ano, com quatro dígitos. Esse campo não é obrigatório, mas se for preenchido tem que ser com quatro dígitos e com valor acima de 2009.

 

Já tenho esse script (abaixo) que faz algumas verificações em outros campos. Como poderia inserir uma função, nesse script, para resolver o problema acima?

 

function validaFormulario() {
        if (!validaData(document.forms.cadastrodecandidatos.datanascimento)) {
                return false;
        }
        
        if (!validaData(document.forms.cadastrodecandidatos.datanascimentoconj)) {
                return false;
        }

        if (!validaData(document.forms.cadastrodecandidatos.datainscricao)) {
                return false;
        }
}


function validaData(str) { 

if (str.value.length == 0) {
        return true;
} else {
        if (str.value.length != 10) {
                return false;
        }
}
 
	dia = (str.value.substring(0,2)); 
        mes = (str.value.substring(3,5)); 
 	ano = (str.value.substring(6,10)); 

	cons = true; 
	
	// verifica se foram digitados números
	if (isNaN(dia) || isNaN(mes) || isNaN(ano)){
		alert("Preencha a data somente com números."); 
		str.value = "";
		str.focus(); 
		return false;
	}
		
    // verifica o dia valido para cada mes 
    if ((dia < 01)||(dia < 01 || dia > 30) && 
		(mes == 04 || mes == 06 || 
		 mes == 09 || mes == 11 ) || 
		 dia > 31) { 
    	cons = false; 
	} 

	// verifica se o mes e valido 
	if (mes < 01 || mes > 12 ) { 
		cons = false; 
	} 

	// verifica se e ano bissexto 
	if (mes == 2 && ( dia < 01 || dia > 29 || 
	   ( dia > 28 && 
	   (parseInt(ano / 4) != ano / 4)))) { 
		cons = false; 
	} 
    
	if (cons == false) { 
		alert("A data inserida nao e valida: " + str.value); 
		str.value = "";
		str.focus(); 
		return false;
	} 
 return true;

z}

// colocar no evento onKeyUp passando o objeto como parametro
function formata(val)
{
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		// charAt -> retorna o caractere posicionado no índice especificado
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   // search -> retorna um valor inteiro, indicando a posição do inicio da primeira
		   // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
		   // instStr.search(expReg);
		   if ((lchar.search(expr) != 0) || (lchar>3)){
			  val.value = "";
		   }
		   
		}else if(i==1){
			   
			   if(lchar.search(expr) != 0){
				  // substring(indice1,indice2)
				  // indice1, indice2 -> será usado para delimitar a string
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
				
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
			   }

		 }else if(i==4){
			
				if(lchar.search(expr) != 0){
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;
					continue;			
				}
		
				if	((nchar != '/') && (nchar != '')){
					var tst1 = val.value.substring(0, (i)+1);

					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
				}
   		  }
		
		  if(i>=6){
			  if(lchar.search(expr) != 0) {
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;			
			  }
		  }
	 }
	
     if(pass.length>10)
		val.value = val.value.substring(0, 10);
	 	return true;
}

Obrigado a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo assim:

 

window.onload = function(){
	var campo = document.getElementById("campo");
	campo.onblur = function(){
		if(campo.value.length > 0) 
			if (parseInt(campo.value) < 2009 && campo.value.length <= 4) 
				alert("Preencha o campo recadastramento corretamente!")
	}
};
Não pegue scripts prontos. Se for pegar, estude-os. Assim terá uma base da linguagem, pelo menos sua estrutura léxica.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.