Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Validação da idade não esta funcionando

Boa tarde, eu estou com um problema com a validação da idade, fiz do jeito que está sendo explicado no vídeo, porém quando aplica a idade, ele permite que menores de 18 façam o cadastro, dei uma olhada aqui no fórum e percebi que outras pessoas estavam tendo esse tipo de problema, porém nenhuma solução aplicada que eu vi, resolveu o meu. Será que alguém pode dar uma olhada e ver oq eu estou fazendo de errado.

export function valida(input) {
    const tipoDeInput = input.dateset.tipo

     if (validadores[tipoDeInput]){
        validadores[tipoDeInput](input)
     }

}

const validadores = {
        dataNascimento:input => validaDataNascimento(input)
}



const dataNascimento = document.querySelector('#nascimento')

dataNascimento.addEventListener('blur', (evento) => {
    validaDataNascimento(evento.target)
})



function validaDataNascimento(input) {
    const dataRecebida = new Date(input.value)
     let mensagem = ''

   if (!maiorQue18(dataRecebida)){
    mensagem = 'Você deve ser maior que 18 anos para se cadastrar.'

   }


    input.setCustomValidity(mensagem)
    input.reportValidity();
}

function maiorQue18(data) {
        const dataAtual = new Date()
        const dataMais18 = new Date(data.getUTCFullYear() + 18, data.getUTCMonth(), data.getUTCdate())

        return (dataMais18 <- dataAtual)
}
4 respostas

Bom dia. Estava com o mesmo problema que o seu, também fiz as soluções aqui do fórum e nenhuma estava funcionando, só depois de tirar essa parte do código que funcionou:

const dataNascimento = document.querySelector('#nascimento')

Testa e vê se funciona também para você, pois era para se tirar essa parte. No seu código, é mais o menos na linha 16.

Bom dia Ana, eu retirei essa parte do código, porém o erro persiste, eu não faço ideia do porque esta ocorrendo isso.

Dá uma olhada no console do navegador pra ver se retorna algum erro.

solução!

eu acabei baixando o arquivo do projeto na aula seguinte e agora esta funcionando normalmente.