【发布时间】:2015-03-19 04:21:13
【问题描述】:
当用户开始写作时,我正在使用 jquery 自动完成来填充城市名称。这些城市来自多个国家,如果用户输入国家名称,我现在要做的是填充相关城市。
例如,如果用户输入'San',jquery 将使用['San Diego','Santiago'] 填充自动完成。现在,如果用户在美国输入,我希望自动完成填充 ['New York City', 'Boston', 'Seattle', 'San Diego', etc..]。
我可以做的是创建HashMap,其中国家为键,城市列表为值。然后,只要输入与国家/地区名称匹配,我就可以适当地更改自动完成的来源。
$( "#citySearch" ).autocomplete({source: citySearchList});
现在问题是显示源中的所有选项,即使 United States 在自动完成的正常实现中不会触发 ['New York', 'Boston', etc..]。
我尝试使用this answer中的技巧
【问题讨论】:
-
ajax请求的结果是您从服务器获得的,与自动完成或 JavaScript 完全无关。换句话说,您的服务器端代码和 SQL 查询是您集中精力的地方。 -
city和county数据存储在哪里? -
@JordiCastilla 我通过
JSON得到cities并简单地使用$( "#citySearch" ).autocomplete({source: citySearchList});我想最好的解决方案是检查#citySearch中的输入是否与任何country匹配并填充相关城市。 -
你怎么知道关系 btw
city-country? -
我将通过
JSON加载它们,并可能创建与hashmap等效的javascript 来存储它们。
标签: jquery ajax autocomplete