Desarrollo en curso, en breve se publicarán el resto de temas.

Capítulo 9: Formularios y sus Eventos

Los formularios son una de las formas principales de interacción entre usuario y aplicación. Este capítulo cubre cómo JavaScript manipula y responde a eventos de formularios.

9.1. Acceso a formularios y elementos

Acceso por document.forms

Todos los formularios de una página se acceden a través de document.forms.

// document.forms es una HTMLCollection
console.log(document.forms);           // HTMLCollection [form, form]
console.log(document.forms[0]);        // Primer formulario
console.log(document.forms['login']);  // Formulario con name="login"

// Acceso a elementos dentro del formulario
const formulario = document.forms['login'];
console.log(formulario.email);         // Input con name="email"
console.log(formulario.password);      // Input con name="password"

Acceso directo por querySelector

La forma más recomendada es usar selectores CSS:

<form id="mi-formulario">
    <input type="text" name="email" id="email">
    <input type="password" name="password">
    <button type="submit">Login</button>
</form>

9.2. Eventos principales de formularios

submit

Se dispara cuando el usuario envía el formulario (presiona el botón submit o Enter en un input).

input

Se dispara cada vez que el usuario cambia el contenido de un campo (más o menos tecla).

change

Se dispara cuando el usuario termina de editar un campo (pierde el foco).

focus y blur

  • focus: El input recibe el foco (el usuario empieza a escribir en él)

  • blur: El input pierde el foco (el usuario se va a otro campo)


9.3. preventDefault() en formularios

Cuando registres un listener en el evento submit, casi siempre necesitarás cancelar el envío por defecto.

Sin preventDefault(), el navegador recargaría la página y enviaría el formulario al servidor (comportamiento clásico de HTML).


9.4. Lectura de valores

Cada tipo de input tiene formas diferentes de leer su valor.

input[type="text"], textarea

input[type="checkbox"]

input[type="radio"]

select


9.5. Objeto FormData: Procesamiento moderno

FormData es una interfaz moderna para recopilar datos de formularios de forma segura.


9.6. Patrón práctico: Validación en tiempo real


Resumen del Capítulo

Los formularios son la interfaz principal para recopilar datos del usuario. JavaScript permite validar, transformar y procesar esos datos en tiempo real. Recuerda usar preventDefault() en el evento submit para evitar recargas de página innecesarias, y utiliza FormData para un manejo moderno y seguro de datos.

💡 Conceptos Clave:

  • submit: Evento al enviar el formulario

  • input: Se dispara al cambiar contenido (cada tecla)

  • change: Se dispara al terminar de editar

  • focus/blur: Recibir y perder el foco

  • preventDefault(): Evitar el envío por defecto

  • Lectura de valores: .value, .checked según el tipo

  • FormData: Interfaz moderna para datos de formularios

  • Validación en tiempo real: Feedback inmediato al usuario

🤔 Preguntas de Reflexión:

  1. ¿Cuál es la diferencia entre los eventos input y change?

  2. ¿Cuándo necesitarías usar preventDefault() en un formulario?

  3. ¿Cómo leerías el valor de un <select> con múltiples selecciones?

  4. ¿Cuál es la ventaja de usar FormData en lugar de leer cada valor manualmente?

  5. ¿Cómo validarías un email en tiempo real mientras el usuario escribe?

  6. Crea un formulario con validación que solo permita enviar si los campos son válidos.


Última actualización

¿Te fue útil?