Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Duarte

Erro de Verificação de CPF

Recommended Posts

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 ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei seu código como postou e para mim funcionou certo, ajustou a máscara e validou o CPF. Talvez você postou apenas parte pare facilitar, então manda tudo, pode ser outra coisa que esteja gerando erro.

Aliás, tem essa parte abaixo que é Jquery, mas você não carrega nenhuma biblioteca, acredito que tenha limpado um pouco para postar aqui e sobrou isso, mas também não causa o erro que falou.

 

<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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.