In my apps, I take them to the zip code field first. If they enter a valid zip, I populate the city and state. In the rare instance where there are more than one city in the zip code, they can manually change the city. I also provide a popup window on the zip where they can enter a new one, if needed. 99% of the time, the zip code is all the data entry required.