Let's say we have three text boxes for positive numbers (say A,B, and C) that must satisfy the condition that their product is 1. For example, A=0.5, B=10, C=0.2, would be a valid input.

Once the user inputs any two of the numbers, the remaining text box is automatically filled in. So if the user inputs A = 0.5 and C = 0.2, the program will fill in B = 10.

Now let us say that the user tries to type 5 in the input box. What should be done?

  1. Do not let the user change B. The problem with this is that the input 5 may genuinely be correct, and one of the other fields is wrong. The user would presumably have to delete one of their other answers before being allowed to enter B, which would not be convenient.
  2. Notify the user that the criteria is not being met, and do not let them submit the form until they fix it. The problem with this is then the user has to manually ensure the criteria is being met, when it would be more convenient for the program to ensure this for them. Perhaps they only know two of the inputs, and want the program to calculate the third, for example.
  3. Modify A to 1 or C to 0.4. This is the option I want to use. The problem is that it is not clear which one to modify. It depends upon which box the user mistakenly entered. If A is correct and C is incorrect, we would not want the program to modify A.
    1. One way to resolve the problem is to put buttons for "locking" inputs. Then the program would only modify unlocked inputs. These seems overly complicated though.
    2. Update the "oldest" input (i.e. the one whose last update is oldest). The problem with this is it could get really confusing for the user on how to enter the three inputs they want.
    3. Use solution 2, but put a "update" button under each input that will update that box to meet the criteria. This is my best solution so far, but it again seems a little overcomplicated.
  4. 2D selector field. The criteria defines a 2D surface in 3D space. You could let the user select a point in this field, displaying the A, B, and C axis projected to it. The problem with this is that it is not precise.
  5. Something else?

Which of these is optimal UI?


2 Answers 2


Modify the least recently user-modified one.
This wil not make everyone happy, since it's sometimes not obvious which will be modified.

As a cue you could disable the one that is going to be modified, indicatign that this one is currently not editable.

However, there are other methods:

Automatically Normalize - this is the one I feel most confident about, for a general audience: remove the constraint. If the product of the values entered is 12, divide by 12, without telling the user.

Manually Normalize - reject inputs where the product is not 1, offer a Normalize button instead, who adjusts all values.

If the form only or primarily contains this input, you can use the same button / button location: user enters values, OK morphs to Normalize, user clicks that, values are normalized and button morphs to OK

Manual Lock - extend the "disable" idea above: add a toggleable "lock" symbol to each input. (open lock - greyed, closed lock - black)

Indicate it's interactive (tabstop, on hover). When user activates the lock, this is the item that doesn't get modified.

Only one lock can be active at a given time. When an input gets focus, this input's lock is disabled. Activating a lock when its input has focus should select the next input.

Option: you can allow disabling all locks, and distribute the required change between the two un-focused inputs.


I would go with solution 3.3 (inform the user about criteria not being met and provide update buttons to set the right number). You could also display it as a dropdown (with the single value being the correct number).

  1. forces users to adapt their workflow to the program's inflexibility.
  2. Notifying in a polite way is a good idea. If the computation is complex (which I would say applies to this case), it is hard for the user to determine the right input. 3.1 I find the idea of updating inputs more reasonable. When do you toggle the update of the third value? When two values have been locked? Seems weird to me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.