it-swarm.cn

如何处理相互关联的下拉选项?

我有一个包含3个下拉列表的表单,每个下拉列表约有5-10个选择。这些下拉菜单中的选择密切相关,并且某些排列无效。这也意味着,如果用户在下拉菜单之一中更改选择,则其他两个菜单中的当前值可能无效。

我的设计文档当前指出:“如果选择了无效的组合,则应显示错误”和“为了帮助用户选择有效的组合,下拉列表中所有会产生无效组合的选择应在下拉菜单中低亮显示”。

我不认为这是解决此问题的最佳方法,但我想不出更好的选择。我曾考虑过将它们组合成一个包含所有有效组合的下拉菜单,但这也很笨拙。

有人还有其他解决方案吗?

8
IanR

如果可以在下拉菜单之间确定顺序,则解决方案相对简单:

每个下拉选择都会重置以下(下游)下拉菜单中的选择。它还会更新可用字段以适合该下拉列表中的当前选择(根本不显示不允许的选项)。

例如,考虑较旧的地图站点:您可以选择一个州,然后选择一个城市,然后再选择一条街道。如果您更改了州,您将失去先前选择的城市,这是可以接受的。

如果无明显顺序,您可以:

  • 禁止选择与现有选择冲突的新值。
    我认为即使在选择之前,您也可以在下拉菜单中“暗淡显示”这些选项。

  • “低光”(如您所说)会出现问题的新值,但允许用户选择它们。
    然后可以显示一个对话框,说明新值有问题。
    用户可以选择:

    • 忽略警告并覆盖-即选择了新选项,并重置先前在其他下拉菜单中选择的冲突值。
    • 注意警告(关闭对话框)并选择另一个值。

    无论如何,该对话框必须具有“记住选择”复选框,因此下次它不会打扰用户。

7
Dan Barak

尽管我知道可能存在缺少垂直空间的问题,但我肯定会尝试不使用下拉菜单,但我会尝试使用列表类型的元素(选择多个或单选输入组) )-这样一来,用户就可以在一组中选择会影响其他组中选项的内容时看到发生的更改。

另外-我至少会尝试a)提供最常用选择集的快捷方式b)尝试重新设计整个过程。这个界面不能被称为“简单”,但是您可以轻松实现它:)

2
Jüri

看到了很多次,虽然显而易见的是“禁止”无效的组合,但它也有一些缺点:

  1. 过渡到有效组合可能很困难,因为中间步骤都是“不允许的”。例如如果您有选项A/B和C/D,并且只允许C和B允许D,则用户不能从A + C切换到B + D,因为这两个下拉菜单都不会切换到另一个选项。对于更复杂的系统,这可能是一个特殊的问题,如果用户不太熟悉可能不允许使用哪些组合,则可能会成为一个特殊问题。寻找合法的中间步骤可以归结为反复试验。
  2. 拒绝的原因可能是晦涩的,您想通知用户其选择无效的原因。

我建议不要禁止无效的选择。您的规范并没有禁止使用它们;光线不足是不一样的。通过不加强调,使非法选择与合法选择不同,但允许他们被选择。将其与消息区域结合起来,当选择了非法组合时会显示该消息区域,并给出原因并提出替代方案(并且不允许用户继续进行下一步)。

如果可以将选择项分解为一个序列,那么所有这些都是无效的:那么按顺序显示这些选择项并在显示每个选择项时禁止任何非法选择项更为有意义。

2
DJClayworth

如果某些选择无效,则根本不应该显示它们。这将减少向用户显示错误的可能性。

如果这是用于Web应用程序,请使用JavaScript消除无效选择,具体取决于选择。在使用第一个下拉列表后,逐步显示第二个下拉列表并提供适当的选项。同上第三。验证服务器端,并且只有在服务器端验证后验证无效时,才显示错误。只有禁用了JavaScript或有意绕过表单的用户才会看到该错误。

如果是用于桌面应用程序,请使用相同类型的原理。

1
Virtuosi Media