Validação de CPF e CNPJ em Javascript


Autor/fonte: Leandro Alexandre
E-mail/Url: http://www.vivaolinux.com.br/script/Validacao-de-CPF-e-CNPJ-no-mesmo-c...
Tags: [ validação ] [ cpf ] [ cnpj ]



Digg del.icio.us

Valida se o CPF e CNPJ foi digitado corretamente no mesmo campo no modo client-Side, ou seja valida sem refresh na página e no computador do usuário.

Script:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Validação de CPF e CNPJ</title>
<style>
a:link    {color: #330000; text-decoration: none;}
a:visited {color: #330000; text-decoration: none;}
a:hover   {color: #330000; text-decoration: underline;}
</style>
</head>
<body bgcolor="#CCFFFF">
<center>
<form action="pessoa_lista.php" method="post" name="form_consulta">
  <table>
      <tr>
         <td align="right"><font face="verdana,arial,helvetica"
            size="2" color="#330000"><input type="radio" value="cpf" name="rad" onClick =0 >CPF<input type="radio" value="cnpj" name="rad" onClick =0>CNPJ:</font></td>
         <td>
         <input type="text" name="cpf_cnpj" size="18" OnKeyUp="cnpj_cpf(this.name,this.value,'form_consulta',this.form)" onKeypress="campo_numerico()" maxlength="18" value=''></td>
      </tr>
   </table>
</form>
<SCRIPT LANGUAGE="JavaScript">
   function campo_numerico (){
         if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
   }

   /*function cnpj_cpf verifica qual das funcoes tem que chamar cpf ou cnpj*/

   function cnpj_cpf(campo,documento,f,formi){
      form = formi;

      for (Count = 0; Count < 2; Count++){

         if (form.rad[Count].checked)
            break;
      }


      if (Count == 0){
         mascara_cpf (campo,documento,f);
      }

      else{
         mascara_cnpj (campo,documento,f);
      }
   }

   function mascara_cnpj (campo,documento,f){
      var mydata = '';
      mydata = mydata + documento;

      if (mydata.length == 2){
         mydata   = mydata + '.';

         ct_campo = eval("document."+f+"."+campo+".value = mydata");
         ct_campo;
      }

      if (mydata.length == 6){
               mydata   = mydata + '.';

               ct_campo = eval("document."+f+"."+campo+".value = mydata");
               ct_campo;
      }

      if (mydata.length == 10){
         mydata      = mydata + '/';

         ct_campo1 = eval("document."+f+"."+campo+".value = mydata");
         ct_campo1;
      }

      if (mydata.length == 15){
               mydata      = mydata + '-';

               ct_campo1 = eval("document."+f+"."+campo+".value = mydata");
               ct_campo1;
      }

      if (mydata.length == 18){

         valida_cnpj(f,campo);
      }
   }

   function mascara_cpf (campo,documento,f){
         var mydata = '';
         mydata = mydata + documento;

         if (mydata.length == 3){
            mydata   = mydata + '.';

            ct_campo = eval("document."+f+"."+campo+".value = mydata");
            ct_campo;
         }

         if (mydata.length == 7){
                  mydata   = mydata + '.';

                  ct_campo = eval("document."+f+"."+campo+".value = mydata");
                  ct_campo;
         }

         if (mydata.length == 11){
            mydata      = mydata + '-';

            ct_campo1 = eval("document."+f+"."+campo+".value = mydata");
            ct_campo1;
         }

         if (mydata.length == 14){

            valida_cpf(f,campo);
         }

   }

   function valida_cnpj(f,campo){
         pri = eval("document."+f+"."+campo+".value.substring(0,2)");
         seg = eval("document."+f+"."+campo+".value.substring(3,6)");
         ter = eval("document."+f+"."+campo+".value.substring(7,10)");
         qua = eval("document."+f+"."+campo+".value.substring(11,15)");
         qui = eval("document."+f+"."+campo+".value.substring(16,18)");

         var i;
         var numero;
         var situacao = '';

         numero = (pri+seg+ter+qua+qui);

         s = numero;

         c = s.substr(0,12);
         var dv = s.substr(12,2);
         var d1 = 0;

         for (i = 0; i < 12; i++){
            d1 += c.charAt(11-i)*(2+(i % 8));
         }

         if (d1 == 0){
            var result = "falso";
         }
            d1 = 11 - (d1 % 11);

         if (d1 > 9) d1 = 0;

            if (dv.charAt(0) != d1){
               var result = "falso";
            }

         d1 *= 2;
         for (i = 0; i < 12; i++){
            d1 += c.charAt(11-i)*(2+((i+1) % 8));
         }

         d1 = 11 - (d1 % 11);
         if (d1 > 9) d1 = 0;

            if (dv.charAt(1) != d1){
               var result = "falso";
            }


         if (result == "falso") {
            alert("CNPJ inválido!");
            aux1 = eval("document."+f+"."+campo+".focus");
            aux2 = eval("document."+f+"."+campo+".value = ''");

         }
   }

   function valida_cpf(f,campo){
         pri = eval("document."+f+"."+campo+".value.substring(0,3)");
         seg = eval("document."+f+"."+campo+".value.substring(4,7)");
         ter = eval("document."+f+"."+campo+".value.substring(8,11)");
         qua = eval("document."+f+"."+campo+".value.substring(12,14)");

         var i;
         var numero;

         numero = (pri+seg+ter+qua);

         s = numero;
         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){
            var result = "falso";
         }

         d1 = 11 - (d1 % 11);
         if (d1 > 9) d1 = 0;

         if (dv.charAt(0) != d1){
            var result = "falso";
         }

         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){
            var result = "falso";
         }

         if (result == "falso") {
            alert("CPF inválido!");
            aux1 = eval("document."+f+"."+campo+".focus");
            aux2 = eval("document."+f+"."+campo+".value = ''");

         }
   }
</SCRIPT>
</center>
</body>
</html>




Enviado por xKuRt em 20/01/2009 às 21:56


Itens relacionados

A importância de validações no lado do servidor
Função que mostra como validar valores somente numéricos
Validar extensão de arquivo em Javascript
Validação de CPF
Máscara para CPF
Máscara para CNPJ

Avaliação

Avaliação desta publicação: 10.00; Total de avaliações: 1


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Terça, 04 de Agosto de 2015




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Use a Cabeça! Web Design


Capa do livro
Sistemas de Banco de Dados - Projeto, Implementação e Administração


Capa do livro
Tcp/Ip - Guia De Consulta Rapida





Hostnet

IMD