Enforcing mutual exclusivity in multiple constrained choices
I want to offer the user the choice of one of n choices. The natural choice is to use a dropdown list box:
Here, "Album name", "Artist name" and "Track name" should be mutually exclusive; only one dropdown may have each distinct value selected.
Each row is also optional - only "Album name", say, may be set. There is currently a separate affordance to add a new case rule.
In the screenie above, you can see the alternative choices are disabled. Is this the best way to handle this? Should the other options be removed from the list instead?
Alternatively, is it best to allow the selection, but display a warning and disallow the "saving" or "confirmation" of these settings with an error message?
I'd confirm that it's better to have some options greyed out.
Here's an example from outlook. Note the greyed out regions in the dropdown. It also has indicators for adding or removing the case on the fly which I know you mentioned you had.
Notice, as choices get exhausted and another case is added, it filters through the secondary choices until nothing is left:
Here's what it looks like with all choices exhausted. There are no error messages that appear, just can keep adding infinite greyed out items but I'd recommend hiding the "+" after the final option.
Not saying it's the better way to do it, just that this is the approach that Microsoft has taken in Outlook and they must have loads of user research on every feature of their products to support this.
If possible, it is always better to design a UI so that a user cannot do the "wrong thing", rather than allowing wrong selections / data entry and then displaying a message. This saves the user time and unnecessary frustration.
User shouldn't be able to select items that don't make sense, and for clarity I would say to remove them entirely.
Don't use n*n complexity , simply make the label and corresponding to that label user have to select the corresponding data
The second and subsequent drop-downs should be updated to remove invalid choices, based on what has already been chosen.
Once "Album name" has been selected, it cannot appear in any other choice.
In the mockup below, if Track name is chosen here, then only Artist name would be available in the third dropdown.