Boa noite pessoal, prosseguindo com o código abaixo, sigo validando data de nascimento menores de 18 anos.
const dataNascimento = document.querySelector('#nascimento')
dataNascimento.addEventListener('blur', (e) => {
validaDataNascimento(e.target)
})
function validaDataNascimento(input) {
const dataRecebida = new Date(input.value)
let mensagem = ''
if (!maiorIdade(dataRecebida)) {
mensagem = 'Você deve ter 18 anos ou mais para poder se cadastrar!'
console.log('eu sou true')
}
input.setCustomValidity(mensagem)
}
function maiorIdade(data) {
const dataAtual = new Date()
const dataMais18 = new Date(data.getUTCFullYear() + 18, data.getUTCMonth(), data.getUTCDate())
if (dataMais18 <= dataAtual){
console.log('estou aqui')
} else {
console.log("ops")
}
return dataMais18 <= dataAtual
}
Fiz diversos "console.log" e pude perceber que a lógica de captura de datas está ok, porém continua validando menores de 18 anos.
Fiz um console.log(input.setCustomValidity(mensagem)) na tentativa de observar algum erro, porém retorna undefined. Seria esse o problema? Como corrigir ou o que há de errado com o código?