Erro de Verificação de CPF
Olá, estou montando um sistema de cadastro e estou usando Javascript, porem eu não sei usar muito bem, por ser iniciante. e queria ajuda com o seguinte problema. tenho um sistema de verificação de cpf e um mask para cpf, telefone e cep. porem como estou usando os dois ao mesmo tempo, o sistema de verificação de cpf para de funcionar, mas se eu tirar o mask, ele volta a funcionar. queria saber se alguém pode me ajudar com esse erro. sistema.php <!DOCTYPE hmtl>
<html lang="pt-br"> <head> <meta charset="UTF-8"/> <link rel="stylesheet" type="text/css" href="css.css"> <script type="text/javascript" src="js/jquery-cidades.js"></script> <script type="text/javascript" src="js/jquery-mask.js"></script> <script type="text/javascript" src="js/jquery-cpf.js"></script> </head> <body> <div id="menu"> <ul> <li> <a href="index.php">Inicio</a> </li> <li> <a href="produtos.php">Produtos</a> </li> <li> <a href="login.php">Login</a> </li> <li> <a href="cadastro.php">Cadastro</a> </li> </ul> </div> <div id="conteudo"> <form action="processarcad.php" method="post" id="form" name="form"> <label>nome</label> <input name="nome" type="text" title="Somente letras" placeholder="Digite seu Nome" maxlength="40" pattern="[a-z\s]+$" required><br /> <label>login</label> <input name="login" type="text" title="Digite no minimo 4 caracteres" placeholder="Digite Um Login" maxlength="20" pattern=".{4,20}" required><br /> <label>senha</label> <input name="senha" type="text" title="Digite no minimo 4 caracteres" placeholder="DIgite Uma Senha" maxlength="20" pattern=".{4,20}" required><br /> <label>confirmar senha</label> <input name="confi_senha" type="text" title="Digite no minimo 4 caracteres" placeholder="Digite novamente sua Senha" maxlength="20" pattern=".{4,20}" required><br /> <label>cpf</label> <input name="cpf" type="tel" title="Digite um CPF Valido" placeholder="___.___.___-__" maxlength="14" onblur="javascript: validarCPF(this.value). " onkeypress="javascript: mascara(this, cpf_mask). " required><br /> <label>email</label> <input name="email" type="email" title="Somente E-mails São Validos" placeholder="Digite um Email Valido" required><br /> <label>tel</label> <input name="tel" type="tel" title="Digite numero valido" placeholder="Digite um telefone valido" maxLength="13" onkeyup="maskIt(this,event,'(##)####-####')" required><br /> <label>end</label> <input name="end" type="text" title="Digite seu Endereço" placeholder="Digite seu Endereço" required><br /> <label>n imovel</label> <input name="n_imovel" type="tel" title="Digite no maximo 4 numeros" placeholder="Digite o Nº do seu Imovel" maxlength="4" pattern=".{2,4}" required><br /> <label>cep</label> <input name="cep" type="text" title="digite um cep valido" placeholder="Digite seu Cep" maxlength="9" onkeyup="maskIt(this,event,'#####-###')" required><br /> <tr> <td>estado</td> <td> <select name="estados"> <option>escolha um estado</option> <?php require("conectar.php"). $resultado = mysqli_query($conexao, "SELECT id_estados, uf FROM estados ORDER BY uf. "). if($resultado == false){ echo("erro"). } else{ while ($row = mysqli_fetch_array($resultado)) { echo ("<option value='$row[id_estados]'>$row[uf]</option> <br>"). } }?> </select> </td> </tr><br /> <tr> <td>cidade</td> <td> <select name="cidades"> <option>escolha um estado</option> <script> $(document).ready(function(e) { $('[name="estados"]').on('change',function(){ var Estados = $(this).val(). $.get( "obtercidades.php", { estados:Estados }, function( data ) { $('[name="cidades"]').html(data). }). }). }). </script> </select> </td> </tr> <input class="but" type="submit" value="enviar" /> <input class="but" type="reset" value="Limpar" /> </form> </div> </body>
</html> jquery-mask.js function maskIt(w,e,m,r,a){ // Cancela se o evento for Backspace if (!e) var e = window.event if (e.keyCode) code = e.keyCode. else if (e.which) code = e.which. // Variáveis da função var txt = (!r)? w.value.replace(/[^\d]+/gi,''): w.value.replace(/[^\d]+/gi,'').reverse(). var mask = (!r)? m: m.reverse(). var pre = (a )? a.pre: "". var pos = (a )? a.pos: "". var ret = "". if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false. // Loop na máscara para aplicar os caracteres for(var x=0,y=0, z=mask.length. x<z && y<txt.length. ){ if(mask.charAt(x)!='#'){ ret += mask.charAt(x). x++. } else{ ret += txt.charAt(y). y++. x++. } } // Retorno da função ret = (!r)? ret: ret.reverse() w.value = pre+ret+pos. } // Novo método para o objeto 'String' String.prototype.reverse = function(){ return this.split('').reverse().join(''). }. jquery-cpf.js function validarCPF( cpf ){ var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i. if(!filtro.test(cpf)) { window.alert("CPF inválido. Tente novamente."). return false. } cpf = remove(cpf, "."). cpf = remove(cpf, "-"). if(cpf.length!= 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") { window.alert("CPF inválido. Tente novamente."). return false. } soma = 0. for(i = 0. i < 9. i++) { soma += parseInt(cpf.charAt(i)) * (10 - i). } resto = 11 - (soma % 11). if(resto == 10 || resto == 11) { resto = 0. } if(resto!= parseInt(cpf.charAt(9))){ window.alert("CPF inválido. Tente novamente."). return false. } soma = 0. for(i = 0. i < 10. i ++) { soma += parseInt(cpf.charAt(i)) * (11 - i). } resto = 11 - (soma % 11). if(resto == 10 || resto == 11) { resto = 0. } if(resto!= parseInt(cpf.charAt(10))){ window.alert("CPF inválido. Tente novamente."). return false. } return true. } function remove(str, sub) { i = str.indexOf(sub). r = "". if (i == -1) return str. { r += str.substring(0,i) + remove(str.substring(i + sub.length), sub). } return r. } /** MASCARA ( mascara(o,f) e execmascara() ) CRIADAS POR ELCIO LUIZ elcio.com.br */function mascara(o,f){ v_obj=o v_fun=f setTimeout("execmascara()",1)
} function execmascara(){ v_obj.value=v_fun(v_obj.value)
} function cpf_mask(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca ponto entre o terceiro e o quarto dígitos v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca ponto entre o setimo e o oitava dígitos v=v.replace(/(\d{3})(\d)/,"$1-$2") //Coloca ponto entre o decimoprimeiro e o decimosegundo dígitos return v
} se alguém puder me ajudar, agradeço ^^Discussão (1)
Carregando comentários...