I have a web form, with two typeaheads:

  • Customer Typeahead
  • Item Typeahead

The user can select only 1 Customer and can add multiple Items to the form, via an asp gridview control and a bootstrap modal.I load the item typeahead based on customer information provided by the customer typeahead. So if the user changes the customer at any point, i must clear the grid, as item details(Price) will change.

My problem:

How do i control this user behavior? How do i communicate to the user that this is how the form behaves, so as to avoid confusion and frustration.

My thoughts:

Solution 1

  • Load the form with only the customer typehead visible
  • Once customer is selected, show grid control and lock down customer typeahead

So if the user needs to change the customer, i must either provide a change customer button to clear all data(grid and customer typeahead), OR the user needs to refresh the page completely.

Solution 2

  • Allow the user to change customer at any point in page life cycle
  • When customer is changed (clear grid details and force the user to enter items again)

I hope i made my problem clear, unambiguous and not opinion based. I can provide screen shots if required.

These are the screen shots:

enter image description here

enter image description here

Thank you

  • 1
    screenshots would help. so you're saying that if the user changes the customer, they lose all the items in the form? Could you add an warning to the page when the user attempts to switch customer, warning them of the consequences, then allow them to proceed or cancel?
    – Midas
    Apr 4, 2016 at 15:44
  • @Midas. The thing is my item prices are linked to customers via pricegroups assigned to each customer. Thus, when the customer changes, all added items must be removed, as the price for those items will not be correct. Apr 4, 2016 at 15:47
  • @Midas, interesting suggestion though. Add it as an answer i will mark it correct Apr 4, 2016 at 15:49

1 Answer 1


Whether you have a typeahead control or not is purely anecdotal for your question.

You don't need to (and furthermore, shouldn't) clear all. Instead, you should UPDATE form info based on the new client's variable.

Since as you say, this field controls the price fields, then a simple update of the price fields should suffice. Like so:

if $client --> $clientgroup1 --> return price 1
else if $client --> $clientgroup2 --> return price 2
else if $client --> $clientgroup3 --> return price 3
else --> return price 4

This way you save the user some painful process. Just imagine you do some tedious form and then you realize you have only one mistake, and when you try to solve it... everything disappears! If I was the user, I'd hate any program or app that provides such a destructive behavior.

And while warnings are necessary, this doesn't mean your problem is solved, because you have this situation: you made a mistake, you KNOW you did it and you want to solve it. And then you show the user a warning like

if you do this, the world will fall apart

oh, OK, I don't want to do that, but... how are you going to help me solve the issue? Should I leave an error to avoid this big problem to the world?

And there yo have your answer: you need to provide a solution, not to multiply the errors. Thus... update the fields and that's it, no weird messages, no reinventing the wheel, just plain and simple solutions

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.