I have a form with city, state and country fields. The design makes the user select the country, then state, and then if the item is not found, they type the name of the organization, followed by city. Roughly 5% of people type "City Name, ST". e.g. "Boulder, CO" or "Boulder, Colorado". There are cases where a comma makes sense, such as "Brooklyn, New York".

Is there any good solution to this problem?

Edit: We have 30% international addresses, so zip code tricks don't really work.

Update: I like Keno's idea of validating post comma text... show a soft error when there is a comma.

  • 1
    In what way does the user typing the state break the system? Your system seeing the situation and adjusting accordingly is the best solution. – Evil Closet Monkey Oct 17 '16 at 0:47

Try using autocomplete where the user starts typing and gets a list of cities and their corresponding states.

enter image description here

Pros:

  • Users never have to type the full name.
  • Users can never misspell a name.
  • Less need of error messages and error handling.

Found an API that might help you.

  • This is nice, saves typing all of very long city names. It shouldn't be an absolute though-trouble is what if someone is overseas? What if someone lives out in the sticks and their town isn't registered in the system? – the other one Oct 17 '16 at 10:12
  • I am not sure how it works "over there" but i guess that all possible locations could be in the system. If not, just ad that location to the system. – Ilias Bennani Oct 17 '16 at 10:27

You can automate the city (and state) field by asking for the user’s ZIP code first. Every code correlates with a specific state and a developer can use a tool / API that will put the right city and state into the fields after the user types in the ZIP code.

Automating the city field prevents user mistakes and the time spent to complete the form is shorter.

Update: Some comments suggest the automation can fail.

Even a lot sites make the user enter their zip code first (see Apple), and then auto-populate the city and state based on it, you can have some issues developing this.

enter image description here

Some zip codes can generate a result with multiple cities/towns/etc within them. This means you may need a select/ dropdown with the options from the array of cities and allow the user to select the correct city. Anyway, the country is already selected in this step, so the format for the zip code is known.

Also, provide a way for someone to successfully complete this form without the zip code.

The suggestion dropdown can have more problems in development, but the idea is good too (an automatic suggestion dropdown as you type your state). This requires more interactions than the first method and this method requires a database of all possible city names.

Resources (this is just to see there are a lot of great tools there):

35 zip code APIs

Get City Name from Zip Code google geocoding

Google Maps APIs

  • Given that zip codes can cross city boundaries, that there are over 43,000 zip codes and that zip codes are not constant, how would the user interaction change when the automation fails? – Evil Closet Monkey Oct 16 '16 at 20:32
  • 2
    @EvilClosetMonkey Postal codes are not unique by country, but the country could be a field before the zip code. Also, in development, an API version updates can be automatic or supervised. If the automation fails, the inputs/ selects with the country and state can be filed manually. I suggested a solution that helps, not necessary replace the functionality. – Madalina Taina Oct 17 '16 at 3:55
  • 1
    You could certainly use the Zip code to narrow the list and then, if there are any options, present them as drop-downs or Radio buttons. – Andrew Martin Oct 17 '16 at 9:30
  • 1
    I am really curious if there has been any studies on the usability of these enter the post code first and then select your address systems. I personally find them rather annoying. Typing my post code then scrolling down to my address can take longer than just typing my address – the other one Oct 17 '16 at 10:10
  • 1
    @theotherone, from a purely logical point of view, the data that you get from hand typed addresses can vary greatly in quality which, in the longer term, could lead to a bad perception of the whole service if the final product in not delivered correctly (look up the 'peak-end rule'). Whereas, the quality of data gained from look-up forms is consistent and, usually, high quality. I would be prepared to bet that a tiny bit of frustration at the address point would be preferable to the frustration of having to chase mis-deliveries sent to non-existent addresses. – Andrew Martin Oct 21 '16 at 10:44

I would validate everything after a comma in that field and advice:

validate after comma

  • Is a comma always entered by every user? An adaptation of this might be to check backwards from the end of the input to see if you can match a state/abbreviation preceded by a space. – Andrew Leach Oct 17 '16 at 7:57
  • If you're going to the trouble of checking the content after the comma then why not compare it against a checklist of states and use that to populate the State field - Asking the user these questions won't help as they're unlikely to ready the full question. They'll get as far as "Are you sure" and just think 'Yes, I'm sure' and dismiss the alert. – Andrew Martin Oct 17 '16 at 9:28
  • @AndrewLeach : The regex would check for a comma and then validate after that – Keno Oct 17 '16 at 17:10
  • @AndrewMartin : The question as I understand it was checking that states were not included in cities, but permissive of special comma separated cases. As for your last comment I don't know A/B, or hard data, everything else I would be speculating. – Keno Oct 17 '16 at 17:11
  • @Keno, the form described also includes a field for 'State'. I was just pointing out that, rather than bombarding the user with alerts that they probably won't read properly, you could simply take that information and put it where it belongs. However, this is somewhat moot as the from should be designed in such a way that makes the entry of bad data impossible - such as the zip solution proposed in another answer. – Andrew Martin Oct 18 '16 at 7:31

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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