O "setCustomValidity" não é escrita no console, o texto está escrito da mesma forma do vídeo, talvez esteja faltando algo.
valida-idade.js
export default function maiorDeIdade(campo){
const dataNascimento = new Date(campo.value);
if (!validaIdade(dataNascimento)) {
campo.setCustomValidity("O usuário não é maior de idade");
}
}
function validaIdade(data){
const dataAtual = new Date();
const dataMais18 = new Date(data.getUTCFullYear()+18, data.getUTCMonth(), data.getUTCDate());
return dataAtual >= dataMais18;
}
script.js
//Texto anterior.
const tiposDeErro = [
'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 = "";
if (campo.name == "cpf" && campo.value.length >= 11){
UmCPF(campo);
}
if(campo.name == "aniversario" && campo.value !== ''){
maiorDeIdade(campo);
}
tiposDeErro.forEach(erro => {
if (campo.validity[erro]) {
mensagem = mensagens[campo.name][erro];
console.log(mensagem);
console.log(validity[erro])
}
})
const mensagemErro = campo.parentNode.querySelector('.mensagem-erro');
const validadorDeInput = campo.checkValidity();
if (!validadorDeInput) {
mensagemErro.textContent = mensagem;
} else {
mensagemErro.textContent = "";
}
}