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

Não consigo validar data de nascimento

Curso: JavaScript na Web: Validação de Formulários e HTML5 Aula: 02. Validações Customizadas Atividade: 02. Logica para Validar Data de Nascimento

Mesmo após copiar os códigos fornecidos no inicio da aula 3, continuo sem conseguir validar se a persona é 18+ ou não, mesmo colocando a data de hoje o cadastro segue normal.

6 respostas

Fala ai Cássio , tudo bem? Como está o código completo? Pode compartilhar comigo por favor?

Fico no aguardo.

validacao.js

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

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

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

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)
}

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

    return dataMais18 <= dataAtual
}

cortei o resto do codigo se não nao caberia aqui

cadastro.html

                <fieldset>
                    <legend class="formulario__legenda">Informações pessoais</legend>
                    <div class="input-container">
                        <input name="nascimento" id="nascimento" class="input" type="date" placeholder="Data de nascimento" data-tipo="dataNascimento" required>
                        <label class="input-label" for="nascimento">Data de nascimento</label>
                        <span class="input-mensagem-erro">Este campo não está válido</span>
                    </div>
                    <div class="input-container">
                        <input name="cpf" id="cpf" class="input" type="text" placeholder="CPF">
                        <label class="input-label" for="cpf">CPF</label>
                        <span class="input-mensagem-erro">Este campo não está válido</span>
                    </div>
                </fieldset>

Lembrando que eu segui conforme a aula, aplicando no meu código, e não funcionou, então avancei até a aula 3 para pegar o código do instrutor e mesmo assim não valida.

Estou rodando o Go Live e não diretamente o HTML. Tentei tanto no Firefox, quanto no Chrome.

solução!

Refiz tudo e agora tá funcionando.

Fala Cassio, muito bom, acabou que não deu tempo de olhar os códigos.

Sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.