Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Cómo diseñar un buen formulario muchos a uno

Luis Miguel López Magaña
Cómo diseñar un buen formulario muchos a uno
El reproductor de video será cargado en breves instantes.

Importancia del diseño de un buen formulario

El diseño de un buen formulario realmente va más allá de utilizar diferentes tipos de campos, lo que ocurre es que tenemos encasilladas determinadas asociaciones a asociarlas a unos campos.

Un ejemplo puede ser una asociación de muchos-a-uno, en la que parece que automáticamente tenemos que generar un campo desplegable, un select de HTML, pero no tiene por qué ser así.

Siempre hay que buscar maximizar la usabilidad y la experiencia de usuario, ya que pueden incrementar nuestra tasa de éxito.

En internet se habla de la historia de la web de Expedia, y de cómo quitando un campo en un formulario de pago, que no se entendía muy bien qué significaba, consiguieron aumentar sus ingresos en 12 millones de euros en un año.

Esto quiere decir que un formulario bien diseñado puede cambiar por completo una aplicación web, porque está claro que ningún usuario es feliz rellenando formularios, ni para comprar, ni para publicar en una red social, siempre lo quiero hacer todo de la manera más fácil posible.

Algunas buenas prácticas

Algunas pautas sobre buenas prácticas que se pueden aplicar a los formularios son las siguientes:

  • Solo los datos indispensables

Los formularios mastodónticos siempre echan para atrás al usuario, con lo cual sería deseable que se incluyeran solamente los datos indispensables.

Esto requiere un esfuerzo en el diseño de nuestro formulario y en el modelo de datos, pero esto puede aumentar nuestra tasa de éxito.

  • Una columna, con los títulos sobre el campo

También es bueno mostrar el formulario en una sola columna, aunque con esto nos toque lidiar con el diseño de nuestra aplicación.

Está demostrado que los formularios que están en varias columnas hacen que los usuarios tiendan a perderse.

  • Secuencia lógica de campos

Hay que utilizar una secuencia lógica, de forma que el usuario pueda seguirla. Mejor si nos podemos el tabulador, siendo ideal tener un campo debajo del otro y que el usuario pueda ir pasando fácilmente de uno a otro.

El diseño de campos que esté más unidos solo se debe usar en contextos muy concretos. Por ejemplo, si estamos montando una fecha a partir de un campo día, un campo mes y un campo año, sí que podrían estar en una misma línea.

Salvo en esos casos, en general debemos tender a tratar de poner cada campo en una línea.

  • Cada campo debe tener el tamaño necesario

Si hacemos un campo en el que vamos a escribir un texto muy largo y queda muy corto supondrá una mala experiencia de usuario. También hay que evitar crear un campo muy grande para un valor muy pequeño.

Hay que tratar siempre de ajustar los campos lo máximo posible.

  • Ofrecer ayuda al usuario con las predicciones que podemos hacerle

Podemos ayudar al usuario diferenciando campos que son obligatorios de los que no, utilizar algún asistente o algún componente concreto a la hora de escribir un texto, etcétera.

Estas ayudas al usuario harán que la tasa de éxito del formulario aumentará.

  • No usar botones de reset

Debemos huir de este tipo de botones que se utilizan para borrar los campos del formulario o para restablecerlos, ya que son una práctica del siglo pasado.

  • Mensajes de error claros

Los mensajes de error que utilicemos no deben ser farragosos y siempre tienen que ser claros.

Si el usuario se ha equivocado al cumplimentar algo del formulario, tenemos que informarle, pero siempre de la manera más clara posible.

Tipos de campos relacionales

Cuando vamos a trabajar con campos relacionales, es decir, campos que asocian un objeto con otro, nos podemos encontrar con tres tipos de asociaciones entre datos:

  • Muchos-a-uno (many-to-one)

  • Uno-a-muchos (one-to-many)

  • Muchos-a-muchos (many-to-many)

Asociaciones muchos-a-uno

Las asociaciones entre datos muchos-a-uno, son la asociación más frecuente y suelen tener diversas variantes, como una asociación normal, de agregación, de composición, etcétera.

Mediante esta asociación asociamos una instancia de una clase de una entidad, con varias instancias de otra.

Algunos ejemplos clásicos pueden ser:

  • Producto y categoría: un producto suele pertenecer solamente una categoría, pero una categoría puede estar asociada a varios productos diferentes.

  • Pedido y cliente: un pedido se asocia a un único cliente, pero un cliente puede realizar muchos pedidos.

  • Población y provincia: una población pertenece a una provincia, pero una provincia tiene muchas poblaciones.

Cómo implementarlos visualmente

Lo más clásico para hacer un formulario en el cual tenemos que asociar, por ejemplo, un producto a una categoría, sería el del de un select, en el que lo asociaríamos de esta manera que vemos en la imagen:

Imagen 0 en Cómo diseñar un buen formulario muchos a uno

En Thymeleaf no es complicado hacerlo, y se puede pintar fácilmente mediante un th:field dentro del campo select, y con th:each ir pintando las diferentes opciones, de esta forma:

Imagen 1 en Cómo diseñar un buen formulario muchos a uno

Con una expresión condicional le podríamos añadir el atributo selected si fuera en un formulario de edición.

Además, tenemos otras posibilidades, por ejemplo, si el conjunto de valores con el cual queremos asociar no es muy grande, podríamos utilizar una lista de botones radio.

Por ejemplo, si quisiéramos asociar a un objeto determinado color de fondo, y solamente ofrecemos cuatro posibilidades (green, blue, yellow, white), podríamos hacerlo directamente como una serie de botones radio en lugar de con desplegable.

Imagen 2 en Cómo diseñar un buen formulario muchos a uno

Estos botones radio podemos hacerlos más atractivos visualmente, porque los podríamos crear con algo más de estilo o también como botones toggle, en los que cuando pinchamos en una opción se deshabilita la contraria y viceversa.

Si el conjunto de opciones no es muy grande y lo queremos hacer más visual, pues podemos hacer estos campos radio con una serie de botones con imágenes, en los cuales claramente, con un tamaño mayor, pudiéramos invitar al usuario, de una manera mucho más visual, a elegir una opción.

Imagen 3 en Cómo diseñar un buen formulario muchos a uno

Si el conjunto de valores fuese más grande o tendente incluso a ilimitado, es decir, que se gestionaran de una manera aparte, en lugar de utilizar un campo select, que se puede hacer enorme, como en un select de un país donde aparecen los más de 200 países que hay en el mundo y se vuelve totalmente insufrible, podríamos utilizar un input + datalist.

Imagen 4 en Cómo diseñar un buen formulario muchos a uno

De esta manera, el input nos permite escribir, pero por detrás tiene una lista que nos va a ayudar, y en el momento en el vamos afinando un poco en lo que hemos escrito, nos va filtrando para después elegir valor correspondiente.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Java 8 para programadores Java

Java 8 para programadores Java

curso

Con este curso aprenderás:

  • Introducción al diseño de clases en Java .
  • Diseño avanzado de clases.
  • Clases genéricas y colecciones.

Duración: 8 horas y 40 minutos

Programador Java Web

Programador Java Web

carrera

Incluye 8 cursos:

  • Curso de Git
  • Curso de Java 8 desde cero
  • Java 8 para programadores Java

y 5 cursos más!

Duración: 46 horas y 15 minutos

Diseño de un formulario de uno a muchos

Diseño de un formulario de uno a muchos

Lenguajes de programación

22 de Octubre de 2019

En esta ocasión te detallamos cómo poder utilizar Thymeleaf para crear y diseñar formularios que incluyen alguna asociación del tipo uno-a-muchos.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars