Fórum WMO: Validação De Cpf - Fórum WMO

Ir para

Página 1 de 1
  • Novo tópico
  • Responder
  • Ícone  Compartilhar

Validação De Cpf não consigo validar

#1 Membro offline   michelmfreitas 

  • ...
  • Ícone
  • Grupo: Usuários
  • Posts: 310
  • Cadastrado: 15/10/2003
  • Sexo:Não informado
Pontos: 0
Neutral

Postou 29/08/2007, 14:19

Olá pessoas!!!

Não consigo validar meu CPF, o código está certo , mas parece que não entra na função... vejam:

function ValidarCPF(cpf){
var cpf = cpf.value;
exp = /\.|\-/g
cpf = cpf.toString().replace( exp, "" );
var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
var soma1=0, soma2=0;
var vlr =11;

for(i=0;i<9;i++){
soma1+=eval(cpf.charAt(i)*(vlr-1));
soma2+=eval(cpf.charAt(i)*vlr);
vlr--;
}
soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
soma2=(((soma2+(2*soma1))*10)%11);

var digitoGerado=(soma1*10)+soma2;
if(digitoGerado!=digitoDigitado)
alert('CPF Invalido!');
}


onde o name do form é "formulario" e a linha do input é:

<input name="cpf" type="text" class="form" id="cpf" size="50" onblur="ValidarCPF(formulario.cpf); />" />


Porque não consigo validar? Podem me ajudar?
Michel Martins
0

#2 Membro offline   Paulo André 

  • Why so serious?
  • Ícone
  • Grupo: Administradores
  • Posts: 5.093
  • Cadastrado: 07/01/2004
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?
Pontos: 16
Good

Postou 30/08/2007, 06:27

Sua linha do input está errada e o parâmetro que você está passando para a função também. =)

O correto seria assim:
<input name="cpf" type="text" class="form" id="cpf" size="50" onblur="ValidarCPF(this.value);" />


Flws...
(y)
Imagem

Fórum WMO - Equipe de Desenvolvimento - Administrador
[ paulorodrigues.eti.br ] [ @pauloandreget ]
0

#3 Membro offline   michelmfreitas 

  • ...
  • Ícone
  • Grupo: Usuários
  • Posts: 310
  • Cadastrado: 15/10/2003
  • Sexo:Não informado
Pontos: 0
Neutral

Postou 30/08/2007, 09:57

Resolvi um problema e criei outro... não vou criar novo tópico pra isso... poluição.... rss


o que tá acontecendo é o seguinte... na validação de um campo de CPF - peguei um script de validação na net, mesclei com o codigo que criei, mas n consigo fazer funcionar...

<script Language="Javascript">

				 
function checa_formulario(formulario){


if (formulario.nome.value == ""){
alert("Insira seu nome");
formulario.nome.focus();
return (false);
}
if (formulario.email.value == ""){
alert("O Campo E-mail está Vazio !!!");
formulario.email.focus();
return (false);
}
if (formulario.email.value.indexOf('@', 0) == -1){
alert("O E-mail é Inválido !!!");
formulario.email.focus();
return (false);
}
if (formulario.sexo.value == ""){
alert("Informe seu sexo");
formulario.sexo.focus();
return (false);
}
if (formulario.data_nascimento.value == ""){
alert("Informa sua Data de Nascimento");
formulario.data_nascimento.focus();
return (false);
}
if (formulario.profissao.value == ""){
alert("O campo profissão Está Vazio !!!");
formulario.profissao.focus();
return (false);
}
if (formulario.endereco.value == ""){
alert("O campo Endereço Está Vazio !!!");
formulario.endereco.focus();
return (false);
}
if (formulario.numero.value == ""){
alert("O campo número Está Vazio !!!");
formulario.numero.focus();
return (false);
}
if (formulario.bairro.value == "selecione"){
alert("O campo Bairro está vazio.");
formulario.bairro.focus();
return (false);
}
if(formulario.cidade.value == ""){
alert("O campo Cidade Está Vazio !!!");
formulario.cidade.focus();
return (false);
}
if(formulario.cep.value == ""){
alert("O campo cep Está Vazio !!!");
formulario.cep.focus();
return (false);
}
if (formulario.rg.value == ""){
alert("O campo RG Está Vazio !!!");
formulario.rg.focus();
return (false);
}

if (formulario.cpfID.value == ""){
	alert("O campo CPF Está Vazio !!!");
	formulario.cpf.focus();
	return (false);
}else{
	/*
	cpf = document.formulario.cpfID.value;
	erro = new String;
	if (cpf.length < 11) erro += "Sao necessarios 11 digitos para verificacao do CPF! \n\n";
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n";
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		erro += "Numero de CPF invalido!"
	}
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++){
		a[i] = cpf.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.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
			erro +="Verifique o CPF!";
		}
		if (erro.length > 0){
			alert(erro);
			return (false);
		}
		return (true);
	}
	*/
	var i;
 
s = document.frmCli.txtCpf.value;
 
var c = s.substr(0,9);
 
var dv = s.substr(9,2);
 
var d1 = 0;
 
for (i = 0; i < 9; i++)
 
{
 
d1 += c.charAt(i)*(10-i);
 
}
 
if (d1 == 0){
 
alert("CPF Invalido")
 
return false;
 
}
 
d1 = 11 - (d1 % 11);
 
if (d1 > 9) d1 = 0;
 
if (dv.charAt(0) != d1)
 
{
 
alert("CPF Invalido")
 
return false;
 
}
 
 
d1 *= 2;
 
for (i = 0; i < 9; i++)
 
{
 
d1 += c.charAt(i)*(11-i);
 
}
 
d1 = 11 - (d1 % 11);
 
if (d1 > 9) d1 = 0;
 
if (dv.charAt(1) != d1)
 
{
 
alert("CPF Invalido")
 
return false;
 
}
 
return true;
 
} 



if (formulario.condicoes.value == ""){
alert("O campo Condições de Pagamento Está Vazio !!!");
formulario.condicoes.focus();
return (false);
}
if (formulario.envio.value == ""){
alert("O campo Forma de Envio Está Vazio !!!");
formulario.envio.focus();
return (false);
}
if (formulario.estado.value == ""){
alert("Selecione um estado.");
formulario.estado.focus();
return (false);
}

</script>



Linha do FORM:

<form id="formulario" name="formulario" method="post" action="processaFicha.php" onsubmit="return checa_formulario(this)">


Ao preencher o form ele valida normalmente, até chegar no CPF... que se eu deixar em branco ele passa direto sem validar...
Michel Martins
0

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)