JavaScript · Sección 9

Eventos, formularios y almacenamiento

Propagación, delegación, formularios accesibles, validación por capas, JSON y almacenamiento local con versiones.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas seleccionar y modificar elementos del DOM. Trabajarás eventos, validación y persistencia local como responsabilidades separadas.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Eventos y delegación con Formularios y validación y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Eventos y delegación y Formularios y validación? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Diseñarás interacciones predecibles con propagación, formularios validados y almacenamiento local limitado.

Al terminar podrás
  • Un listener recibe un evento que viaja por el árbol
  • Valida significado, no solo presencia
  • localStorage guarda texto, no confianza
01
Eventos

Un listener recibe un evento que viaja por el árbol

addEventListener registra una función y puede retirarla con la misma referencia. Los eventos atraviesan captura, objetivo y burbujeo. La delegación escucha en un ancestro estable y usa closest para descubrir el control; funciona bien en listas dinámicas y evita listeners duplicados.

01

preventDefault cancela la acción predeterminada.

02

stopPropagation no debe usarse por reflejo.

03

Retira listeners de componentes con ciclo de vida.

Comprueba lo aprendido · 01

¿Qué propiedad del evento permite la delegación?

Mostrar respuesta +

El burbujeo: el evento originado en un descendiente llega a sus ancestros, donde puede inspeccionarse target.

02
Formularios

Valida significado, no solo presencia

FormData recupera controles con name. La validación HTML cubre requisitos básicos, pero JavaScript debe comprobar reglas entre campos y el servidor debe validar nuevamente. El error debe explicar cómo corregir, quedar asociado al control y no borrar la entrada innecesariamente.

01

El evento submit cubre teclado y botón.

02

trim elimina espacios exteriores, no valida contenido.

03

Deshabilitar el envío no reemplaza la protección contra duplicados.

Comprueba lo aprendido · 02

¿Por qué escuchar click del botón no reemplaza submit?

Mostrar respuesta +

Porque un formulario puede enviarse con Enter u otros mecanismos. submit representa la acción completa del formulario.

03
Persistencia local

localStorage guarda texto, no confianza

localStorage persiste por origen y sus operaciones son síncronas. JSON.stringify y JSON.parse permiten guardar estructuras compatibles, pero al recuperar debes validar forma y versión. No se usa para contraseñas, tokens sensibles ni grandes volúmenes; tampoco reemplaza sincronización o respaldo.

01

Puede fallar por cuota o políticas del navegador.

02

Dos pestañas pueden cambiar el mismo dato.

03

Incluye versión si el formato evolucionará.

Comprueba lo aprendido · 03

¿Por qué JSON.parse debe estar protegido y seguido de validación?

Mostrar respuesta +

El texto puede estar corrupto, ser antiguo o haber sido modificado. Parsear solo comprueba sintaxis JSON, no que la forma cumpla tu contrato.

Resumen de la sección

Tu recorrido en tres ideas

  1. Un listener recibe un evento que viaja por el árbol
  2. Valida significado, no solo presencia
  3. localStorage guarda texto, no confianza
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Registrar listeners repetidos en cada render.

ERROR 02

Guardar secretos o datos críticos en localStorage.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Construye un formulario de notas con validación, delegación de eventos, persistencia versionada y recuperación ante JSON corrupto.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Submit funciona con teclado.
  • Los errores están asociados a controles.
  • La carga inválida usa una salida segura sin perder diagnóstico.