Ir para conteúdo
Fórum Script Brasil
  • 0

Validador De Cpf


MauF

Pergunta

20 respostass a esta questão

Posts Recomendados

  • 0

Olha só esse codigo eu boto aqui

<head>

<script Language = "JavaScript">
<!------------- Begin
// -----------------------------------------------------------------
// Funcao    : IsCPFValid
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de um CPF
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho  
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsCPFValid(FormName, ElemName, ElemCaption){

document.forms[FormName].elements[ElemName].value = formatDoc(FormName, ElemName, 'cpf', 'banco');

var ok = 'sim';
var ParteString;
var Mensagem;
var CampoTeste = document.forms[FormName].elements[ElemName];
var CampoSemBrancos;
CharValido = '0123456789'

//Monta campo sem brancos
CampoSemBrancos = "";
for (var i=0; i < CampoTeste.value.length; i++) {
 if (CampoTeste.value.substring(i, i+1) != ' ') {
 CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
 }
}

//Se campo estiver vazio
if (CampoSemBrancos == '')     {  
 Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
 alert(Mensagem)
 CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
 CampoTeste.select();
 CampoTeste.focus()
 return false;
}

//Se estiver preenchido, testar os caracteres
ParteString = "";
for (var i=0; i < CampoTeste.value.length; i++) {
 ParteString = "" + CampoTeste.value.substring(i, i+1);
 if (CharValido.indexOf(ParteString) == "-1") {
  ok = "não";
 }
}

if (ok == "não") {
 alert("Caracteres inválidos! Preencha somente com números!");
 CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
 CampoTeste.select();
 CampoTeste.focus();
 return false;
}
if (CampoTeste.value.length != 11){
 alert("Por Favor, Preencha  com 11 números!");
 CampoTeste.value = formatDoc(For????
?A?º?mName, ElemName, "cpf", "tela");
 CampoTeste.select();
 CampoTeste.focus();
 return false;
}

//Calculo de consistencia do CPF
var soma
var CPFCalculado
var CPFDigito

CPFCalculado = CampoTeste.value.substring(0,9);
soma = 0;
for (var i=0; i < 9; i++) {
 soma = soma + CPFCalculado.substring(i, i+1) * (10 - i)
}

CPFDigito = 11  - (soma % 11);
if (CPFDigito > 9){
 CPFCalculado = CPFCalculado + '0';
}
else{
 CPFCalculado = CPFCalculado + String(CPFDigito);
}
soma = 0;
for (i=0;i < 10; i++){
 soma = soma + CPFCalculado.substring(i, i+1) * (11 - i)
} 
CPFDigito = 11  - (soma % 11);
if (CPFDigito > 9){
 CPFCalculado = CPFCalculado + '0';
}
else{
 CPFCalculado = CPFCalculado + String(CPFDigito);
}

if (
 (CampoTeste.value != CPFCalculado)
 ||(CampoTeste.value == '11111111111')
 ||(CampoTeste.value == '22222222222')
 ||(CampoTeste.value == '33333333333')
 ||(CampoTeste.value == '44444444444')
 ||(CampoTeste.value == '55555555555')
 ||(CampoTeste.value == '66666666666')
 ||(CampoTeste.value == '77777777777')
 ||(CampoTeste.value == '88888888888')
 ||(CampoTeste.value == '99999999999')
 ){
 //alert("CPF Inválido! Digite novamente! " + String(CPFCalculado));
 alert("CPF Inválido! Digite novamente! ");
 CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
 CampoTeste.select();
 CampoTeste.focus();
 return false;
} 
CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
return true;
}
//  End -->
</script>
</head> e no <BODY>
<form method="post" action="../scripts/inc_associado.php" name="form1" enctype="multipart/form-data">

<input type="text" name="cpf" size="12" maxlength="15">

<input type="submit" name="salvar" value="Salvar" class="combo">
</form>

</BODY>

Link para o comentário
Compartilhar em outros sites

  • 0

No meu input eu chamo a função....

<input type="text" name="cpf" size="12" maxlength="15" onChange="IsCPFValid(FormName, ElemName, ElemCaption)">

mas se eu colocar assim não funciona, eu já tentei botar o onblur mas tambem não funcionou......

Cara esses dias tu me deu um validador de DATAS que tu mesmo fez aquele é perfeito...

Acho que não cheguei a te agradecer antes, mas muito obrigado me ajudou muito.....

esse VAlidador de cpf tem a mesma função do que o teu de data, quanto tu aperta o tab ele faz a verificaçaõ....

ou não é assim que funciona...

Esse esquema de fazer em arquivio separado é bem interessante...

eu faço isso em php, mas em js eu não sei como que faz.....

eu não manjo muito de js.

VAleu pela ajuda

Grande Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

De nada, quando precisar de ajuda é só falar que estaremos aí...

Vamos ao teu problema então:

Primeiro:

para importar um arquivo em javascript utilize essa linha:

<script language="JavaScript" src="nome_do_arquivo.js"></script>
para você utilizar um arquivo js você precisa coloca-lo na mesma pasta onde está a tua página, ou se você colocar em outra, terá de passar o caminho na propriedade "src". Não sei se fui claro. Segundo: no teu input você está passando os parâmetros errado pra função, por isso não funciona. Faz o seguinte
<input type="text" name="cpf" size="12" maxlength="15" onChange="IsCPFValid(this.form, 'cpf', 'cpf')">

O primeiro parâmetro é o nome do form (você deve ter um form para usar essa função <form name="form"></form>) o segundo parâmetro é o nome do campo que contém o cpf, no teu caso, "cpf" e o terceiro é a label que aparece na página (Ex.: selecione o cpf. Esta label é só para mostrar o alert no caso do cara ter informado errado o cpf).

Bom acho que é isso.

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Crystian Valeu pela tu ajuda mas não esta dando certo, não esta checando o o CPF....

Não querendo despresar esse código, mas tu não tem um feito por voce, porque os teus sempre funcionam , mas se tu não tiver não esquenta ....

Mais uma vez Obrigado pela Ajuda... E desculpa alguma coisa...

Abraço..

Link para o comentário
Compartilhar em outros sites

  • 0

MauF, vamos fazer o seguinte, segunda feira quando eu chegar no trabalho eu te mando um código q tenho lá, porque estou em casa e não tenho aqui. Aí te explico direitinho como usar. Só me manda uma mensagem segunda pra mim me lembrar de postar o código pra ti, caso me esqueca.

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

/*
	Validação do CPF através do módulo 11
*/
//função que verifica a veracidade do CPF
function VerificaCPF(nome) {
 var CPF = getValue(nome); // Recebe o valor digitado no campo
	// Verifica se o campo é nulo
	if (CPF == '') {
  return false;
	}
	CPF = Limp(CPF);
	total = CPF.length;
	for(t=0; t < 10; t++){
  cont = 0;
  for(a=0; a < total; a++){
  	if(CPF.substring(a,a+1)==(t+'')){
    cont++;
    if(cont == 11){alert('CPF inválido.'); return false;}
  	}
  }
	}
 // Aqui começa a checagem do CPF
	var POSICAO, I, SOMA, DV, DV_INFORMADO;
	var DIGITO = new Array(10);
	DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
	// Desemembra o número do CPF na array DIGITO
	for (I=0; I<=8; I++) {
  DIGITO[I] = CPF.substr( I, 1);
	}
	// Calcula o valor do 10º dígito da verificação
	POSICAO = 10;
	SOMA = 0;
	for (I=0; I<=8; I++) {
  SOMA = SOMA + DIGITO[I] * POSICAO;
  POSICAO = POSICAO - 1;
	}
	DIGITO[9] = SOMA % 11;
	if (DIGITO[9] < 2) { DIGITO[9] = 0; }
	else{ DIGITO[9] = 11 - DIGITO[9]; }
	// Calcula o valor do 11º dígito da verificação
	POSICAO = 11;
	SOMA = 0;
	for (I=0; I<=9; I++) {
  SOMA = SOMA + DIGITO[I] * POSICAO;
  POSICAO = POSICAO - 1;
	}
	DIGITO[10] = SOMA % 11;
	if (DIGITO[10] < 2) { DIGITO[10] = 0; }
	else { DIGITO[10] = 11 - DIGITO[10]; }
	// Verifica se os valores dos dígitos verificadores conferem
	DV = DIGITO[9] * 10 + DIGITO[10];
	if (DV != DV_INFORMADO) {
  if(msgCPF == 'no') alert('CPF inválido');
  //document.forms[0].CPF.focus();
  //document.forms[0].CPF.value = '';
  return false;
	}
	return true;
}

function FormataCPF(nome){
	CPF = getValue(nome);
	CPF = Limp(CPF);
	if(CPF.length == 11){
  value = Mascara(CPF, '999.999.999-99');
  setValue(nome, value);
  msgCPF = 'no';
	} else {
  if(CPF.length > 0){
  	erroValue = ('Verifique o CPF digitado, pois estão faltando ou sobrando números.');
  	msgCPF = 'yes';
  } else msgCPF = 'no';
	}
}
//função para Limpar e deixar somente os números.
function Limp(c){
	qtd = c.length;
	var v = '';
	for (i=0; i < qtd; i++)
  for(t=0; t < 10; t++){
  	if(c.substring(i,i+1) == t && c.substring(i,i+1) != " ") v += c.substring(i,i+1);}
	return(v);
}

/*
	Funções para pegar o valor, e atribuir um valor ao campo q às chama.
*/
function getValue(nome){
	var obj = eval("document.forms[0]."+nome+".value");
	return obj;
}
function setValue(nome, valor){
	obj = eval("document.forms[0]."+nome);
	obj.value = valor;
}

tah ai o código, qualquer coisa posta ae!

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa, me esqueci de te passar a forma de usar...

no teu input é só colocar no onchange assim:

onchange="VerificaCPF(this.name); FormataCPF(this.name);"

A melhor opção não é passar o nome do campo, mas sim o valor q você pode reaproveitar a função sem prender o cara a um campo, se quiser modificar, é só mexer...

Acho q é isso

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

vou te dar um exemplo:

<html>
<head>
<script language="javascript">
var msgCPF = "no";
/*
Validação do CPF através do módulo 11
*/
//função que verifica a veracidade do CPF
function VerificaCPF(nome) {
var CPF = getValue(nome); // Recebe o valor digitado no campo
// Verifica se o campo é nulo
if (CPF == '') {
 return false;
}
CPF = Limp(CPF);
total = CPF.length;
for(t=0; t < 10; t++){
 cont = 0;
 for(a=0; a < total; a++){
  if(CPF.substring(a,a+1)==(t+'')){
   cont++;
   if(cont == 11){alert('CPF inválido.'); return false;}
  }
 }
}
// Aqui começa a checagem do CPF
var POSICAO, I, SOMA, DV, DV_INFORMADO;
var DIGITO = new Array(10);
DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
// Desemembra o número do CPF na array DIGITO
for (I=0; I<=8; I++) {
 DIGITO[I] = CPF.substr( I, 1);
}
// Calcula o valor do 10º dígito da verificação
POSICAO = 10;
SOMA = 0;
for (I=0; I<=8; I++) {
 SOMA = SOMA + DIGITO[I] * POSICAO;
 POSICAO = POSICAO - 1;
}
DIGITO[9] = SOMA % 11;
if (DIGITO[9] < 2) { DIGITO[9] = 0; }
else{ DIGITO[9] = 11 - DIGITO[9]; }
// Calcula o valor do 11º dígito da verificação
POSICAO = 11;
SOMA = 0;
for (I=0; I<=9; I++) {
 SOMA = SOMA + DIGITO[I] * POSICAO;
 POSICAO = POSICAO - 1;
}
DIGITO[10] = SOMA % 11;
if (DIGITO[10] < 2) { DIGITO[10] = 0; }
else { DIGITO[10] = 11 - DIGITO[10]; }
// Verifica se os valores dos dígitos verificadores conferem
DV = DIGITO[9] * 10 + DIGITO[10];
if (DV != DV_INFORMADO) {
 if(msgCPF == 'no') alert('CPF inválido');
 //document.forms[0].CPF.focus();
 //document.forms[0].CPF.value = '';
 return false;
}
return true;
}

function FormataCPF(nome){
CPF = getValue(nome);
CPF = Limp(CPF);
if(CPF.length == 11){
 value = Mascara(CPF, '999.999.999-99');
 setValue(nome, value);
 msgCPF = 'no';
} else {
 if(CPF.length > 0){
  erroValue = ('Verifique o CPF digitado, pois estão faltando ou sobrando números.');
  msgCPF = 'yes';
 } else msgCPF = 'no';
}
}
//função para Limpar e deixar somente os números.
function Limp(c){
qtd = c.length;
var v = '';
for (i=0; i < qtd; i++)
 for(t=0; t < 10; t++){
  if(c.substring(i,i+1) == t && c.substring(i,i+1) != " ") v += c.substring(i,i+1);}
return(v);
}

/*
Funções para pegar o valor, e atribuir um valor ao campo q às chama.
*/
function getValue(nome){
var obj = eval("document.forms[0]."+nome+".value");
return obj;
}
function setValue(nome, valor){
obj = eval("document.forms[0]."+nome);
obj.value = valor;
}

function Mascara(value, mascara){
	tmp = mascara;
	guarda = value;
	cont = 0;
	var caracter = new Array();
	var position = new Array();
	if(tmp.length > 0){
  qtd = tmp.length;
  for(i=0; i < tmp.length; i++){
  	tmpValue = tmp.substring(i,i+1);
  	if(tmpValue != 9){
    	caracter[cont] = tmpValue;
    	position[cont] = i;
    	cont++;
  	}
  }
  VALOR = value;
  VALOR = Limp(VALOR);
  if(VALOR.length == 0){
  	VALOR = '';
  } else {
  	var value = '';
  	value += VALOR.substring(0,position[0])+caracter[0];
  	car = caracter.length;
  	for(j=1; j < car; j++)
    value += VALOR.substring(position[j-1]-(j-1),position[j]-j)+caracter[j];
    value += VALOR.substring(position[car-1]-(car-1), qtd);
    VALOR = value;
  }
  return value;
	}
	return guarda;
}

</script>
</head>
<body onload="document.form.cpf.focus();">
<form name="form">
<input type="text" name="cpf" onchange="VerificaCPF(this.name); FormataCPF(this.name);">
</form>
</body>
</html>

Desculpa ter q passar duas vezes, mas não tinha testado e agora q testei vi q tava faltando uma função e uma variavel, desculpa.

Espero ter te ajudado...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...