1
respuesta

SIGUE SIN VALIDAR

Estuve checando el foro..... puse en mi código todas las soluciones posibles y nada..... VALIDACIIONES.JS export function valida(input) { const tipoDeInput = input.dataset.tipo; if (validadores[tipoDeInput]){ validadorestipoDeInput; } } const validadores = { nacimiento: (input) => validarNacimiento(input), };

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 diferenciasFechas = new Date( fecha.getUTCFullYear() + 18, fecha.getUTCMonth(), fecha.getUTCDate()

);

return diferenciasFechas <= fechaActual;

} APP.JS import { valida } from "./validaciones.js";

const inputs = document.querySelectorAll("input"); inputs.forEach(input => { input.addEventListener("blur", (input) => { valida(input.target); }) });

1 respuesta

¡Hola Lorena!

Entiendo que estás teniendo problemas con la validación de tu formulario en JavaScript. Revisando tu código, parece que estás exportando la función valida desde el archivo validaciones.js y luego importándola en el archivo app.js. Sin embargo, parece que no estás pasando correctamente el elemento input a la función valida.

En tu archivo app.js, en el evento blur, estás pasando input.target como argumento a la función valida. Sin embargo, input.target se refiere al elemento que disparó el evento, no al elemento input en sí. Para solucionar esto, simplemente cambia input.target por input en la llamada a valida:

input.addEventListener("blur", (event) => {
    valida(event.target);
})

De esta manera, estarás pasando el elemento input correcto a la función valida y debería funcionar correctamente la validación.

Espero que esta solución te sea útil. Si tienes alguna otra pregunta, no dudes en hacerla. ¡Espero haber ayudado y buenos estudios!

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