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

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

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:




  

Sexta, 24 de Fevereiro de 2017




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Aprendendo JavaScript


Capa do livro
PHP 6 E MYSQL 5 para Web Sites Dinâmicos - Aprenda PHP E MYSQL com Rapidez e Eficiência


Capa do livro
Oracle Database 11g SQL





Hostnet

IMD