Ir para conteúdo

POWERED BY:

Arquivado

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

Célio-Ctba

Verificação de CPF

Recommended Posts

Olá galera!

Tenho 2 códigos com as seguintes funções:

 

O 1º é para verificação de número de CPF, falta algum detalhe que não estou conseguindo descobrir

 

<html><head><title>Checagem de CPF!!!></title>

 

<script language = "javascript"><!--

/* Validação de CPF */

function checaCPF() {

var numero = document.formulario.CPF.value;

var posicao, i, soma, dv, dv_informado;

var digito = new Array(10);

 

dv_informado = numero.substr(9, 2);

for (i=0; i<=8; i++) {

digito = numero.substr(i, 1);

}

 

posicao = 10;

soma = 0;

for (i=0; i<=8; i++) {

soma = soma + digito * posicao;

posicao = posicao -1;

}

digito[9] = soma % 11;

if (digito[9] < 2) {

digito[9] = 0; }

else {

digito[9] = 11 - digito[9];

}

 

posicao = 11;

soma = 0;

for (i=0; i<=9; i++) {

soma = soma + digito * posicao;

posicao = posicao - 1;

}

digito[10] - soma % 11;

if (digito[10] < 2) {

digito[10] = 0; }

else {

digito[10] = 11 - digito[10];

}

 

dv = digito[9] * 10 + digito[10];

if (dv != dv_informado) {

alert ('CPF inválido');

document.formulario.CPF.value = ' ';

document.formulario.CPF.focus();

}

}//-->

</script>

 

 

</head>

<body>

 

<form name = "formulario">

CPF : <input type = "text" name = "CPF" onBlur= "checaCPF()">

</form>

 

</body>

</html>

--------------------------------------------------------------------------------

O segundo é para que conforme você digite o número do CPF ele coloca os separadores automaticamente, também falta algum detalhe, se você´s executarem vão ver que se você digita e pressiona a tecla TAB ele preenche os primeiros 3 dígitos.

 

<html><head><title>Checagem de CPF!!!></title>

 

<script LANGUAGE="JavaScript">

 

function formata_cpf(cpf){

var mycpf = '';

mycpf = mycpf + 'cpf';

if (mycpf.length == 3){

mycpf = mycpf + '.';

document.formulario.cpf.value = mycpf;

}

if (mycpf.length == 7){

mycpf = mycpf + '.';

document.formulario.cpf.value = mycpf;

}

if (mycpf.length == 11){

mycpf = mycpf + '-';

document.formulario.cpf.value = mycpf;

}

if (mycpf.length == 14){

}

}

</script>

 

 

 

</head>

<body>

 

<form name = "formulario">

CPF : <input type = "text" name = "cpf" onBlur="formata_cpf(cpf)">

</form>

 

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Taí um código pra tu formatar conforme quer:

 

ASP [/tr][tr]

function FormataCampo(Campo,teclapres,mascara){

//pegando o tamanho do texto da caixa de texto com delay de -1 no event

//ou seja o caractere que foi digitado não ser encontado.

strtext = Campo.value

tamtext = strtext.length

//pegando o tamanho da máscara

tammask = mascara.length

//criando um array para guardar cada caractere da máscara

arrmask = new Array(tammask)

//jogando os caracteres para o vetor

for (var i = 0 ; i < tammask; i++){

arrmask = mascara.slice(i,i+1)

}

//alert (teclapres.keyCode)

//começando o trabalho sujo

if (((((arrmask[tamtext] == "#") || (arrmask[tamtext] == "9"))) || (((arrmask[tamtext+1] != "#") || (arrmask[tamtext+1] != "9"))))){

if ((teclapres.keyCode >= 37 && teclapres.keyCode <= 40)||(teclapres.keyCode >= 48 && teclapres.keyCode <= 57)||(teclapres.keyCode >= 96 && teclapres.keyCode <= 105)||(teclapres.keyCode == 8)||(teclapres.keyCode == 9) ||(teclapres.keyCode == 46) ||(teclapres.keyCode == 13)){

Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext)

}

else{

Detona_Event(Campo,strtext)

}

} else {

if ((arrmask[tamtext] == "A")) {

charupper = event.valueOf()

//charupper = charupper.toUpperCase()

Detona_Event(Campo,strtext)

masktext = strtext + charupper

Campo.value = masktext

}

}

}

//Adiciona todos os caracteres que podem ser usados como máscara

function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){

if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos == ":") || (arrpos == " ") || (arrpos == "-")) && !(teclapres_key == 8)){

separador = arrpos

masktext = strtext + separador

Campo.value = masktext

}

}

function Detona_Event(Campo,strtext){

event.returnValue = false

if (strtext != "") {

Campo.value = strtext

}

}

 

[/tr]

 

E no input text tu coloca isso, note que os sustenidos são os caracteres que serão preenchidos e o ponto e o hífen é a formatação, dentro desse trechinho você pode colocar o que quiser:

 

ASP [/tr][tr]

<input type="text" maxlength="11" onkeypress="FormataCampo(this,event,'####.#####-##')">

 

[/tr]

 

Espero ter ajudado http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala fael !!!!!Tô testando seu post aki, me tire uma dúvida, ele serve para formatar o campo, certo? Inserindo os pontos e o hífen nos 2 últimos dígitos(verificadores)?Não tem nada a ver com verificação matemática, certo?Isso funcionou beleza para formatação do campo.Valew!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, não tem nada a ver com a função matemática para a validação, esse script é só para formatar, você também pode usar esse script para formatar data, CNPJ etc.

 

Para a função de validação, utilize este tutorial, é excelente:

 

Algorítmo do CPF

 

Um abraço, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

fael: Mto obrigado!!!!

 

Funcionou beleza o formatador!!!!

O tutorial é "EXCELENTE" acabou com todos os problemas .

 

 

Valeu mesmo!!!!!

Abraços!

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.