Do zipcodes change for example? Can your drop-down quickly go out-of-date? You'd need a way to manually enter a city so people are able to tell the system an address. Do you want to bother making an auto-updating zipcode feature just for a form?
Is it going to confuse people because nobody else has bothered to make this superfancy selection feature thing?
Is this USA only? There are postal codes/zipcode-equivalents in other countries.
It starts to feel it's likely not worth the time and effort to try to be smart about this particular feature. At least not if I'm imagining this us some generic, universal address web form that is supposed to be usable for USA-sized areas.
To me it feels similar to that famous article about what you can and cannot assume about people's names; turns out they can be way more complicated and weird than one might assume.
Although maybe zipcodes don't really go that deep in complexity. But on the spot I would not dare to assume they are.
This is where the real problems start - postcodes exist the world over.
Speaking as someone that has dealt with countries that have postcodes, but no states, so it's just Street Address (if applicable) | City (if applicable) | Country | Postcode
Inputting a "zip code" first would result in every country being in the drop down.
In Australia, addresses too are wild, they should be considered "free form"
https://blog.melissa.com/en-au/global-intelligence/australia...
Gives this as an example address The Smith Family
'Willow Creek' Station
via Winton
QLD 4730
What kind of app are you building? Maybe you're selling something. You probably want users to get through your check out form as fast as possible before they change their mind or get distracted or frustrated.
Or you're building an app for data entry and people are filling in lots of addresses every day. They would appreciate you saving them time.
Either way, spending a day or two to polish up your form can be worth a lot.
Not saying its trivial to get all the edge cases right, but I'm pretty sure we can do better here.
But in TFA's example it does not (my zip has 3 possible city names; TFA's example shows only 1).