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

Validar extensão de arquivo em Javascript
Máscara para CPF
Função que mostra como validar valores somente numéricos
Validação de CPF
A importância de validações no lado do servidor
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:




  

Segunda, 24 de Novembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
ASP.NET MVC em Ação


Capa do livro
Grafos: Conceitos, Algorítmos e Aplicações


Capa do livro
Construindo Aplicativos Android com HTML, CSS e JavaScript: Criando Aplicativos Nativos com Ferramentas Baseadas nos Padrões Web





Hostnet

IMD