Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Bug] error no me da la fecha por mayor de edad

buenas, consulto aqui porque al momento de poner una fecha de mayor de 18 años aun me salta la restriccion de minoria de edad, y no encuentro el error. aqui el codigo js.

const inputNacimiento = document.querySelector("#birth");

inputNacimiento.addEventListener("blur",(evento)=>{
    validarNacimiento(evento.target);
})

function validarNacimiento(input){
    const fechaCliente = new Date(input.value);
    let mensaje = "";
   if (!mayorDeEdad(fechaCliente)){
    mensaje = "debes tener al menos 18 años de edad";
   };

    input.setCustomValidity(mensaje);
} 

function mayorDeEdad(fecha){
    const fechaActual = new Date();
    const diferenciaFechas = new Date(
        fecha.getUTCFullYear()+18, 
        fecha.getUTCMonth(), 
        fecha.getUTCDate()
        );
    console.log(diferenciaFechas <= fechaActual);
}
2 respuestas
solución!

Hola Miguel,

El problema esta en que la función mayorDeEdad() no está devolviendo un valor booleano. Podrías modificarla para que retorne true si la fecha es mayor de 18 años, y false en caso contrario. Por ejemplo:

function mayorDeEdad(fecha){
    const fechaActual = new Date();
    const diferenciaFechas = new Date(
        fecha.getUTCFullYear()+18, 
        fecha.getUTCMonth(), 
        fecha.getUTCDate()
    );
    return (diferenciaFechas <= fechaActual);
}

Si a una función no es especificado un valor de retorno ella retornara undefined que en un contexto de condicional es considerado false, entonces el resultado siempre será la restriccion de minoria de edad.

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!

gracias era ese el error