Ir para conteúdo

POWERED BY:

Arquivado

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

tatu_pu

Validar cpf

Recommended Posts

aew galera bom dia - boa tarde - boa noite .. tenho um problema ..estou fazendo um formulario que contem campo de CNPJ .. so que ele da um BUG .. quando digito 00000000000000 (14 zeros )ele envia o formulário corretamente, que no caso não era para acontecer .. mais se eu colocar 0000000000000 (13 zeros) ou menos ele avisa ( CNPJ INVÁLIDO) por que sera .. o codigo é esse -

qualquer coisa respondammmmmmmmmmmmmmmmmm por favor

// JavaScript Document

 

function checkdata() {with(document.validacao) {	marcado = -1	for (i=0; i<validacao.tipo.length; i++) {		if (validacao.tipo[i].checked) {			marcado = i			resposta = validacao.tipo[i].value		}	}		if (marcado != 1) {		if(Empresa.value == ""){		alert("O campo Razão Social está em branco");		Empresa.focus();		return false;		}					CNPJ = document.validacao.CNPJID.value;   									erro = new String;				 if (CNPJ.length < 14) erro += "O CNPJ está incorreto \n\n";	 							//substituir os caracteres que não são números			   if(document.layers && parseInt(navigator.appVersion) == 4){					   x = CNPJ.substring(0,2);					   x += CNPJ. substring (3,6);					   x += CNPJ. substring (7,10);					   x += CNPJ. substring (11,15);					   x += CNPJ. substring (16,18);					   CNPJ = x;			   } else {					   CNPJ = CNPJ. replace (".","");					   CNPJ = CNPJ. replace (".","");					   CNPJ = CNPJ. replace ("-","");					   CNPJ = CNPJ. replace ("/","");			   }							   var nonNumbers = /\D/;			   if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n";			  var a = [];			   var b = new Number;			   var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];			   for (i=0; i<12; i++){					   a[i] = CNPJ.charAt(i);					   b += a[i] * c[i+1]; }			   if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }			  b = 0;			   for (y=0; y<13; y++) {					   b += (a[y] * c[y]);			   }			   if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }			   if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){					   erro +="Dígito verificador com problema!";			   }			   if (erro.length > 0){					   alert(erro);					   return false;			   }				  if (Nome.value == "") {			alert("O campo Nome está em branco");			Nome.focus();			return false; 			}						 if (ddd.value=="") { 		alert("O campo DDD está em branco"); 		ddd.focus(); 		return false;		}				if (isNaN(ddd.value)){				   alert ("O campo DDD deve conter apenas numeros!");				   ddd.focus();				   return false;					}						 if (Fone.value=="") { 		alert("O campo Fone está em branco"); 		Fone.focus(); 		return false;	}			 	  if (isNaN(Fone.value)){				   alert ("O campo Fone deve conter apenas numeros!");				   Fone.focus();				   return false;					}				 if (Email.value=="") { 		alert("Digite seu E-mail"); 		Email.focus(); 		return false;	}			if(!Email.value.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)/gi)){ 		alert("O campo de E-mail contém erros"); 		Email.focus(); 		return false 	}														submit();								return false;	} else { //esse else so foi colocado para evitar que o form desse o submit		if (Nome.value == "") {			alert("O campo Nome está em branco");			Nome.focus();			return false; 			}												if (CPF.value == '') {			  alert('O campo CPF está em branco');			  CPF.focus();			  return false;			   }		 		 if (CPF.value != '') {		   erro = new String;  	if (cpf.value.length == 11) 	{	 			cpf.value = cpf.value.replace('.', ''); 			cpf.value = cpf.value.replace('.', ''); 			cpf.value = cpf.value.replace('-', '');  			var nonNumbers = /\D/; 	 			if (nonNumbers.test(cpf.value))  			{ 					erro = "A verificacao de CPF suporta apenas números!";  			} 			else 			{ 					if (cpf.value == "00000000000" ||  							cpf.value == "11111111111" ||  							cpf.value == "22222222222" ||  							cpf.value == "33333333333" ||  							cpf.value == "44444444444" ||  							cpf.value == "55555555555" ||  							cpf.value == "66666666666" ||  							cpf.value == "77777777777" ||  							cpf.value == "88888888888" ||							cpf.value == "01234567890" || 							cpf.value == "99999999999") { 							 							erro = "Número de CPF inválido!" 					} 	 					var a = []; 					var b = new Number; 					var c = 11;  					for (i=0; i<11; i++){ 							a[i] = cpf.value.charAt(i); 							if (i < 9) b += (a[i] * --c); 					} 	 					if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x } 					b = 0; 					c = 11; 	 					for (y=0; y<10; y++) b += (a[y] * c--);  	 					if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; } 	 					if ((cpf.value.charAt(9) != a[9]) || (cpf.value.charAt(10) != a[10])) { 						erro = "Número de CPF inválido."; 					} 			} 	} 	else 	{ 		if(cpf.value.length == 0) 			return false 		else 			erro = "Número de CPF inválido."; 	} 	if (erro.length > 0) { 			alert(erro); 			cpf.focus(); 			return false; 	} 	 			 } 	 if (Fone.value=="") { 		alert("O campo Fone está em branco"); 		Fone.focus(); 		return false;	}			 	  if (isNaN(Fone.value)){				   alert ("O campo Fone deve conter apenas numeros!");				   Fone.focus();				   return false;					}				 if (Email.value=="") { 		alert("Digite seu E-mail"); 		Email.focus(); 		return false;	}			if(!Email.value.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)/gi)){ 		alert("O campo de E-mail contém erros"); 		Email.focus(); 		return false 	}				 	} 		submit();	}}/*		if (validacao.tipo.checked)		 alert("jhfgjhghjfg");		tipo.focus();		 return false;		 	 }	} }*///		alert("CNPJ:"	//		+ "\nDesformatado = " + unformatNumber(val)		//	+ "\nFormatado = " + formatCpfCnpj(val, true, true)//			+ "\nDVs = " + dvCpfCnpj(base, true)	//		+ "\nVálido = " + isCnpj(val));	//else		//alert("CPF:"			//+ "\nDesformatado = " + unformatNumber(val)		//	+ "\nFormatado = " + formatCpfCnpj(val, true)		//	+ "\nDVs = " + dvCpfCnpj(base, false)	//		+ "\nVálido = " + isCpf(val));//	pForm.numero.focus();	//return false;//} //doSubmit

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente seja bem vindo!

 

Sua dúvida é respondida se trocar o valor aqui:

 

if (CNPJ.length < 14) erro += "O CNPJ está incorreto \n\n";
E dê uma lida nas regras do fórum, pois não é permitido o uso de caixa alta no título dos tópicos, ok?

 

Movido para Dinâmico: JavaScript/DHTML

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.