Advertisement
Claudio51

Gerando CPF válido por estado, com javascript

Jul 4th, 2019 (edited)
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 6.51 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.    <head>
  4.        <title>estado CPF</title>
  5.        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  6.        <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
  7.        <meta name="referrer" content="default" id="meta_referrer" />
  8.      
  9. <style>
  10. body{
  11.     font-family: Arial, Helvetica, sans-serif;
  12.     background-color:#F2F5A9;
  13.     font-size:1em;
  14. }
  15.     input[type="radio"] {
  16.     -webkit-appearance: checkbox; /* Chrome, Safari, Opera */
  17.     -moz-appearance: checkbox;    /* Firefox */
  18.     -ms-appearance: checkbox;     /* not currently supported */
  19. }
  20. .label{
  21.     position:absolute;
  22.     width:95%;
  23. }
  24. .label:hover{
  25.     background:#fff;
  26.     cursor:pointer;
  27. }
  28. .label_pontuacao{
  29.     width:100%;
  30.     padding-right:10px;
  31. }
  32. .label_pontuacao:hover{
  33.     background:#fff;
  34.     cursor:pointer;
  35. }
  36. .div{
  37.     position:absolute;
  38.     background-color:#F7BE81;
  39.     width:90%;
  40.     margin:20px;
  41.     padding:30px;
  42.     border:1px solid #ccc;
  43. }
  44. .info{
  45. background-color:#abcdef;
  46. padding:5px;
  47. }
  48. .digito{
  49. color:red;
  50. border-radius:50px;
  51. border:solid 1px #000;
  52. background-color:green;
  53. background-color:#ddd;
  54. }
  55. .cpf{
  56. background-color:#fff;
  57. padding:0 5px 0 0;
  58. }
  59.  
  60. </style>
  61.    </head>
  62.    <body>
  63.  
  64.       <h3><center>Gera CPF válido por estado</center></h3>
  65.  
  66.       <center>
  67.         Escolha o código do estado, clique em Gerar.&nbsp&nbsp
  68.       <input type="button" name="gerarValor"value="Gerar" style=" padding:10px;" onclick="gerarCPF(document.getElementById('cpf'));" />&nbsp&nbsp      
  69.        CPF : <input type="text" name="cpf" id="cpf" style="text-align:center;width:120px;height:30px;" readonly />
  70. <p class="info" >O código do estado está no nono número da esquerda para a direita, ex.<span class="cpf"> 4 8 8&nbsp.&nbsp7 8 0&nbsp.&nbsp5 2&nbsp<span class="digito"> 2 </span>&nbsp-&nbsp 5 6</span></p>
  71. <div id="estado">Mostra o estado do Cpf aqui</div>      
  72. </center>
  73.      
  74.       <div class="div">
  75.             <!-- Escolha da pontuação -->
  76.              <label class="label_pontuacao" ><input type="radio" name="pontuacaoCpf" value="comPontuacao" checked> Com pontuação </label>
  77.              <label class="label_pontuacao"><input type="radio" name="pontuacaoCpf" value="semPontuacao"> Sem pontuação </label><hr>
  78.              <!-- Escolha do estado -->
  79.              <label class="label"><input type="radio" name="estadoCpf" value="" checked> Qualquer estado </label><br>  
  80.              <label class="label"><input type="radio" name="estadoCpf" value="0"> 0 - Rio Grande do Sul </label><br>
  81.              <label class="label"><input type="radio" name="estadoCpf" value="1"> 1 - Distrito Federeal, Goiás, Mato Grosso do Sul e Tocantins </label><br>
  82.              <label class="label"><input type="radio" name="estadoCpf" value="2"> 2 - Pará, Amazonas, Acre, Amapá, Rondônia e Roraima </label><br>
  83.              <label class="label"><input type="radio" name="estadoCpf" value="3"> 3 - Ceará, Maranhão e Piauí </label><br>
  84.              <label class="label"><input type="radio" name="estadoCpf" value="4"> 4 - Pernambuco, Rio Grande do Norte, Paraíba e Alagoas </label><br>
  85.              <label class="label"><input type="radio" name="estadoCpf" value="5"> 5 - Bahia e Sergipe</label><br>
  86.              <label class="label"><input type="radio" name="estadoCpf" value="6"> 6 - Minas Gerais</label><br>
  87.              <label class="label"><input type="radio" name="estadoCpf" value="7"> 7 - Rio de Janeiro e Espírito Santo</label><br>
  88.              <label class="label"><input type="radio" name="estadoCpf" value="8"> 8 - São Paulo</label><br>
  89.              <label class="label"><input type="radio" name="estadoCpf" value="9"> 9 - Paraná e Santa Catarina</label>
  90.        </div>
  91.      
  92. <script>      
  93. function gerarCPF(field){
  94.    
  95.     var estadoCpf = document.getElementsByName("estadoCpf");
  96.     for(i=0;i<estadoCpf.length;i++){
  97.         if(estadoCpf[i].checked){
  98.             break;
  99.         }
  100.     }
  101.    
  102.     // Pega o nome do input radio que vai usar navariavel pontuacaoCpf
  103.     var pontuacaoCpf = document.getElementsByName("pontuacaoCpf");
  104.     // Faz a varredura nos inputs radio com o nome do documento escolhido acima
  105.     for(a=0;a<pontuacaoCpf.length;a++){
  106.         // Ao encontrar o input radio marcado, pega o valor da id dele
  107.         if(pontuacaoCpf[a].checked){
  108.             // Breca a varredura pelos inputs radio
  109.             break;
  110.         }
  111.     }
  112.    
  113.    var n = 9;
  114.    var n1 = randomiza(n);
  115.    var n2 = randomiza(n);
  116.    var n3 = randomiza(n);
  117.    var n4 = randomiza(n);
  118.    var n5 = randomiza(n);
  119.    var n6 = randomiza(n);
  120.    var n7 = randomiza(n);
  121.    var n8 = randomiza(n);
  122.    if(estadoCpf[i].value=='')
  123.    {
  124.    var n9 = randomiza(n);
  125.    
  126.         if (n9==0){
  127.             document.getElementById('estado').innerHTML="Rio Grande do Sul";
  128.          }else if(n9==1){
  129.             document.getElementById('estado').innerHTML="Distrito Federeal, Goiás, Mato Grosso do Sul e Tocantins";
  130.          }else if(n9==2){
  131.             document.getElementById('estado').innerHTML="Pará, Amazonas, Acre, Amapá, Rondônia e Roraima";
  132.          }else if(n9==3){
  133.             document.getElementById('estado').innerHTML="Ceará, Maranhão e Piauí";
  134.          }else if(n9==4){
  135.             document.getElementById('estado').innerHTML="Pernambuco, Rio Grande do Norte, Paraíba e Alagoas";
  136.          }else if(n9==5){
  137.             document.getElementById('estado').innerHTML="Bahia e Sergipe";
  138.          }else if(n9==6){
  139.             document.getElementById('estado').innerHTML="Minas Gerais";
  140.          }else if(n9==7){
  141.             document.getElementById('estado').innerHTML="Rio de Janeiro e Espírito Santo";
  142.          }else if(n9==8){
  143.             document.getElementById('estado').innerHTML="São Paulo";
  144.          }else if(n9==9){
  145.             document.getElementById('estado').innerHTML="Paraná e Santa Catarina";
  146.          };
  147.          
  148.    }else{
  149.    var n9 = estadoCpf[i].value;
  150.    document.getElementById('estado').innerHTML="Estado do Cpf escolhido abaixo";
  151.    }
  152.    
  153.    var d1 = n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
  154.    d1 = 11 - ( mod(d1,11) );
  155.    if (d1>=10) d1 = 0;
  156.     var d2 = d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
  157.     d2 = 11 - ( mod(d2,11) );
  158.     if (d2>=10) d2 = 0;
  159.     retorno = '';
  160.  
  161.   // Condição para pontuar ou não
  162.     if(pontuacaoCpf[a].value=='comPontuacao')
  163.        {
  164.           cpf = ''+n1+n2+n3+'.'+n4+n5+n6+'.'+n7+n8+n9+'-'+d1+d2;
  165.        }  else {
  166.           cpf = ''+n1+n2+n3+n4+n5+n6+n7+n8+n9+d1+d2;
  167.     }
  168.      
  169.     field.value = cpf;
  170. }
  171.  
  172. function randomiza(n) {
  173.   var ranNum = Math.round(Math.random()*n);
  174.   return ranNum;
  175. }
  176.  
  177. function mod(dividendo,divisor) {
  178.   return Math.round(dividendo - (Math.floor(dividendo/divisor)*divisor));
  179. }
  180. </script>
  181.    </body>
  182. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement