JQuery:如何自动完成“城市,州”?

问题 :如何使用JQuery Auto-Completion插件为输入字段建议位置( "City, State" )?

意思是,有人想输入“芝加哥,IL” ……所以他们开始输入"Chi"并自动建议"Chicago, IL ”。

我最大的障碍是找到一项服务,我可以查询以查找所有美国城市+州名。

我本质上想要做StackOverflow“标签”输入表格的工作,但形成“城市,州”自动完成。

有一个名为GeoNames的组,它提供可下载的数据库和免费的Web服务来获取这种类型的数据。 例如,搜索

 http://ws.geonames.org/searchJSON?name_startsWith=Chic&country=US 

将返回一堆包含Chicago,IL的JSON(JSON属性包括“name”:“Chicago”和“adminCode1”:“IL”)。

碰巧,jQuery UI人员使用此数据源进行自动完成演示 。 (感谢NickT的链接)。

每当按下一个键以更新“自动完成”下拉列表时,您需要对服务器进行ajax调用,或者包含所有可能的“城市状态”字符串的数组,并在按下某个键时对其进行过滤。

@Teleport提供了一个按名称搜索城市的API ,例如: https : //api.teleport.org/api/cities/? search = San,% 20United%20States%20of%20America返回圣安东尼奥,圣地亚哥,圣何塞和旧金山。 你也可以传递状态,例如https://api.teleport.org/api/cities/?search=San,%20Tex,%20United%20States%20of%20America只返回圣安东尼奥。 您还可以通过机场代码(例如SFO)和其他“别名”进行搜索。

此API还有一个自动完成小部件,可通过https://github.com/teleport/autocomplete获得

披露:我为Teleport工作。

编辑:在“美利坚合众国”搜索词中添加了“of America”后缀,因为其他一些国家(巴西,委内瑞拉)的名称forms与“美国”相匹配。