Un formulario no sirve solo para "verse bonito". Su valor real está en capturar datos y transformarlos en acciones.
Para eso tienes dos opciones:
input individualmente con querySelectorFormData: una API estándar que lee todos los campos de golpeLa segunda opción es más limpia cuando el formulario tiene varios campos.
FormData funciona asíFormData lee automáticamente los campos del formulario usando su atributo name.
Si un campo no tiene name, FormData lo ignora.
submitpreventDefaultnew FormData(event.target).get("nombre-del-campo")get vs getAlldata.get("campo") — devuelve el primer valor (el más común)data.getAll("campo") — devuelve array con todos los valores (útil para checkboxes con el mismo name)FormData vs consultar inputs| Situación | Mejor opción |
|---|---|
| Formulario con varios campos | FormData |
| Un solo campo o referencia ya guardada | input.value directo |
Enviar datos a una API con fetch | FormData (compatible de forma nativa) |
FormData es directamente compatible con fetch para enviar datos a una API:
Sin necesitar convertir nada a JSON ni construir el cuerpo manualmente.
#form-perfilpreventDefaultFormData para leer nombre y rolCapturar datos bien es el primer paso para construir producto real.