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

时间:2010-04-06 17:04:47

标签: javascript jquery

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

意思是,有人想输入“Chicago,IL” ...所以他们开始输入"Chi"并自动提示"Chicago, IL“。

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

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

3 个答案:

答案 0 :(得分:39)

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

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

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

碰巧,jQuery UI人员将此数据源用于demo of autocomplete。 (感谢NickT的链接)。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

@Teleport提供API to search cities by name,例如: 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)和其他“别名”进行搜索。

https://github.com/teleport/autocomplete

还提供了此API的自动填充小部件

披露:我为Teleport工作。

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