1
resposta

Validação não funciona

Fala pessoal! O meu não está validando, está cadastrando com qualquer idade. Console não apresenta erro.

validacao.js

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

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

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

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

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

  input.setCustomValidity(mensagem)
}

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

  return (dataMais18 <= dataAtual)
}

app.js

import { valida } from "./validacao.js";

const inputs = document.querySelectorAll('input')

inputs.forEach(input => {
  input.addEventListener('blur', (evento) => {
    valida(evento.target)
  })
})

html <script src="./js/app.js" type="module"></script>

Alguém pode ajudar?

1 resposta

no seu arquivo validacao.js return (dataMais18 <= dataAtual) Nao pode esta entre parênteses, basta remover e rodar

  return dataMais18 <= dataAtual