Olá, Thaynara! Tudo bem contigo?
Vou tentar te ajudar a entender melhor sobre o uso do método setCustomValidity()
e o que é o customError
.
O método setCustomValidity()
é utilizado para definir uma mensagem de erro personalizada para um campo de formulário. Ele recebe como parâmetro a mensagem que você deseja exibir. No seu exemplo, você está utilizando esse método para definir mensagens de erro personalizadas para os campos de CPF e data de nascimento.
Por exemplo, no arquivo valida-idade.js
, você tem o seguinte trecho de código:
if (!validaIdade(dataNascimento)) {
campo.setCustomValidity('O usuário não é maior de idade')
}
Nesse caso, se a função validaIdade()
retornar false
, ou seja, se a pessoa não for maior de idade, o método setCustomValidity()
é chamado e define a mensagem de erro como "O usuário não é maior de idade".
Da mesma forma, no arquivo valida-cpf.js
, você tem o seguinte trecho de código:
if (validaNumerosRepetidos(cpf) || validaPrimeiroDigito(cpf) || validaSegundoDigito(cpf)) {
campo.setCustomValidity('Esse CPF não é válido.')
}
Nesse caso, se alguma das funções validaNumerosRepetidos()
, validaPrimeiroDigito()
ou validaSegundoDigito()
retornar true
, ou seja, se o CPF não for válido, o método setCustomValidity()
é chamado e define a mensagem de erro como "Esse CPF não é válido".
O customError
é uma propriedade que indica se um campo de formulário possui um erro personalizado. Ele retorna true
se o campo tiver uma mensagem de erro personalizada definida pelo método setCustomValidity()
, e false
caso contrário.
No seu código, você utiliza o customError
para verificar se um campo possui um erro personalizado e exibir a mensagem de erro na tela. Por exemplo, no trecho de código que você mostrou:
const mensagemErro = campo.parentNode.querySelector('.mensagem-erro')
const validadorDeInput = campo.checkValidity()
if (!validadorDeInput) {
mensagemErro.textContent = mensagem;
} else {
mensagemErro.textContent = " ";
}
Você verifica se o campo não é válido utilizando o método checkValidity()
. Se o campo não for válido, ou seja, se tiver algum erro, você exibe a mensagem de erro na tela, que está armazenada na variável mensagem
. Caso contrário, você deixa o campo sem mensagem de erro.
Espero ter esclarecido suas dúvidas! Se tiver mais alguma pergunta, é só me dizer.
Espero ter ajudado e bons estudos!