Tengo un formulario que contiene (entre otras cosas) 3 menús desplegables, cada uno con aproximadamente 5-10 opciones. Las opciones en estos menús desplegables están estrechamente relacionadas y algunas de las permutaciones serán inválidas. Esto también significa que si el usuario cambia la selección en uno de los menús desplegables, los valores actuales en los otros dos pueden no ser válidos.
Mi documento de diseño actualmente establece que "si se elige una combinación no válida, entonces se debe mostrar un error" y "para ayudar al usuario a elegir combinaciones válidas, todas las opciones en las listas desplegables que producirán una combinación no válida se deben resaltar en el menú desplegable ".
No estoy convencido de que esta sea la mejor manera de lidiar con esto, pero no puedo pensar en mejores alternativas. Pensé en combinarlos en un solo menú desplegable que contenga todas las combinaciones válidas, pero esto también podría ser difícil de manejar.
¿Alguien tiene alguna otra solución?
Si puede determinar un orden entre los menús desplegables, la solución es relativamente fácil:
Cada selección desplegable restablece las selecciones en los siguientes menús desplegables (aguas abajo). También actualiza los campos disponibles para que se ajusten a la selección actual en ese menú desplegable (no se muestra no permitido opciones en absoluto).
Considere, por ejemplo, sitios de mapas más antiguos: puede elegir un estado, luego una ciudad y solo una calle. Sería bastante aceptable que si hubiera cambiado el estado, perdería la ciudad que eligió anteriormente.
Si no hay ningún orden distinto puede:
No permita seleccionar los nuevos valores que entren en conflicto con las selecciones existentes.
Supongo que puede "con poca luz" (como lo dice) estas opciones en el menú desplegable incluso antes de la selección.
"Low-Light" (como usted lo pone) valores nuevos tan problemáticos, pero permiten al usuario seleccionarlos.
Luego puede mostrar un cuadro de diálogo, explicando que el nuevo valor es problemático.
El usuario puede elegir:
De todos modos, el cuadro de diálogo debe tener una casilla de verificación "recordar elección", por lo que la próxima vez no molestará al usuario.
Aunque entiendo que podría existir el problema de la falta de espacio vertical, definitivamente intentaría no usar menús desplegables, trataría de usar elementos de tipo lista en su lugar (seleccione múltiples o grupos de entrada de radio ): esto permite al usuario ver los cambios que ocurren mientras selecciona algo en un grupo que afecta las opciones en otros grupos.
Además, al menos trataría de a) proporcionar un acceso directo a los conjuntos de selección más comunes b) tratar de rediseñar todo. Esta interfaz no se puede llamar "simple", sin embargo, puede hacerlo sin problemas :)
Visto esto muchas veces, y aunque lo obvio es 'no permitir' combinaciones no válidas, tiene algunas desventajas:
Lo que propondría es no rechazar opciones no válidas. Su especificación no dice que deben ser rechazados; la iluminación baja no es lo mismo. Haga que las elecciones ilegales sean distintas de las legales, por énfasis, pero permita que sean elegidas. Combine esto con un área de mensaje que aparece cuando se elige una combinación ilegal, dando la razón y sugiriendo una alternativa (y no permitiendo que el usuario continúe con el siguiente paso).
Todo esto es nulo si las opciones se pueden dividir en una secuencia: entonces tiene mucho más sentido presentar las opciones en secuencia y rechazar las ilegales cuando se presenta cada opción.
Si algunas opciones no son válidas, simplemente no debe mostrarlas. Esto reducirá la posibilidad de que se muestre un error al usuario.
Si esto es para una aplicación web, use JavaScript para eliminar opciones no válidas dependiendo de la selección. Revele progresivamente el segundo menú desplegable con las opciones apropiadas después de que se haya utilizado el primer menú desplegable. Lo mismo para el tercero. Valide del lado del servidor y solo si no se valida después de la validación del lado del servidor, debe mostrar un error. Solo aquellos con JavaScript deshabilitado o aquellos que intentan omitir tu formulario intencionalmente verán el error.
Si es para una aplicación de escritorio, use el mismo tipo de principio.