Claudio51

Gerando CPF válido por estado, com javascript

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