1
resposta

Validando menores de 18 anos

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?

1 resposta

?????