Olá, pessoal!
O meu código está validando corretamente quando a idade é menor que 18 anos. Porém, quando você preenche com uma idade maior que 18, ao invés de você ser redirecionado para a página que diz que que o cadastro foi realizado, você é redirecionado para o input de data. Não sei se é um erro do meu código:
export function valida (input) {
const tipoDoInput = input.dataset.tipo
if(validadores[tipoDoInput]) {
validadores[tipoDoInput](input)
}
}
const validadores = {
dataNascimento: input => validacaoDataDeNascimento(input)
}
function validacaoDataDeNascimento(input) {
const dataRecebida = new Date(input.value);
let mensagemDeAviso = " ";
if(!idadeMaiorDeDezoito(dataRecebida)){
mensagemDeAviso = "Você não pode se cadastrar, pois é menor de 18 anos";
}
input.setCustomValidity(mensagemDeAviso);
}
function idadeMaiorDeDezoito(data){
const dataAtual = new Date();
const dataDaIdadePermitida = new Date(data.getUTCFullYear() + 18, data.getUTCMonth(), data.getUTCDate());
return dataDaIdadePermitida <= dataAtual
}
Arquivo app.js:
import { valida } from './validacaoDataDeNascimento.js';
const inputs = document.querySelectorAll('input');
inputs.forEach(input => {
input.addEventListener('blur', (evento) => {
valida(evento.target);
})
})