Bom dia !!!
Quando eu digito um CPF válido aparece a mensagem "digite um CPF válido"! Ou seja ele não tá considerando nenhum CPF válido!
Poderiam me ajudar?
script.js ----------------------------------------------
import ehUmCPF from "./valida-cpf.js";
import ehMaiorDeIdade from "./validaIdade.js";
const camposDoFormulario = document.querySelectorAll("[required]");
camposDoFormulario.forEach((campo)=>{
campo.addEventListener("blur", ()=> verificaCampo(campo))
campo.addEventListener("invalid", evento => evento.preventDefault())
});
const tiposDeErros=[
'valueMissing',
'typeMismatch',
'patternMismatch',
'tooShort',
'customError'
];
const mensagens = {
nome: {
valueMissing: "O campo de nome não pode estar vazio.",
patternMismatch: "Por favor, preencha um nome válido.",
tooShort: "Por favor, preencha um nome válido."
},
email: {
valueMissing: "O campo de e-mail não pode estar vazio.",
typeMismatch: "Por favor, preencha um email válido.",
tooShort: "Por favor, preencha um e-mail válido."
},
rg: {
valueMissing: "O campo de RG não pode estar vazio.",
patternMismatch: "Por favor, preencha um RG válido.",
tooShort: "O campo de RG não tem caractéres suficientes."
},
cpf: {
valueMissing: 'O campo de CPF não pode estar vazio.',
patternMismatch: "Por favor, preencha um CPF válido.",
customError: "O CPF digitado não existe.",
tooShort: "O campo de CPF não tem caractéres suficientes."
},
aniversario: {
valueMissing: 'O campo de data de nascimento não pode estar vazio.',
customError: 'Você deve ser maior que 18 anos para se cadastrar.'
},
termos: {
valueMissing: 'Você deve aceitar nossos termos antes de continuar.',
}
};
function verificaCampo(campo){
let mensagem ="";
campo.setCustomValidity('');
if (campo.name=="cpf" && campo.value.length >=11){
ehUmCPF(campo)
}
if (campo.name == "aniversario" && campo.value !=""){
ehMaiorDeIdade(campo)
}
tiposDeErros.forEach(erro =>{
if(campo.validity[erro]){
mensagem= mensagens[campo.name][erro];
}
});
const mensagemErro = campo.parentNode.querySelector('.mensagem-erro');
const validadorDeInput = campo.checkValidity();
if (!validadorDeInput){
mensagemErro.textContent = mensagem
} else{
mensagemErro.textContent = "";
}
}
valida-cpf -------------------------------------------
export default function ehUmCPF(campo){
const cpf= campo.value.replace(/\.|-/g, "");
if(validaNumerosRepetidos(cpf) || validaPrimeiroDigito(cpf) || validaSegundoDigito(cpf)){
campo.setCustomValidity('Esse CPF não é válido');
}
}
function validaNumerosRepetidos (cpf){
const numerosRepetidos =[
'00000000000',
'11111111111',
'22222222222',
'33333333333',
'44444444444',
'55555555555',
'66666666666',
'77777777777',
'88888888888',
'99999999999'
]
return numerosRepetidos.includes(cpf)
}
function validaPrimeiroDigito(cpf){
let soma =0;
let mutiplicador = 10;
for (let tamanho = 0; tamanho < 9; tamanho++) {
soma += cpf[tamanho]*mutiplicador;
mutiplicador--;
}
soma =(soma*10)%11
if(soma==10 || soma ==1){
soma=0;
}
return soma!=cpf[9];
}
function validaSegundoDigito(cpf){
let soma =0;
let mutiplicador = 11;
for (let tamanho = 0; tamanho < 10; tamanho++) {
soma += cpf[tamanho]*mutiplicador;
mutiplicador--;
}
soma =(soma*10)%11
if(soma==10 || soma ==1){
soma=0;
}
return soma!=cpf[10];
}