我正在使用jquery auto complete来填写用户开始编写时的城市名称。这些城市来自多个国家,如果用户输入国家/地区名称,我现在要做的就是填充相关城市。
因此,例如,如果用户输入'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
中的技巧答案 0 :(得分:1)
如果搜索输入包含国家/地区的名称,您可以从该国家/地区获取城市列表并执行以下操作:
$( "#citySearch" ).autocomplete({ source: citySearchList, minLength :0 });
$( "#citySearch" ).autocomplete("search", "");
如果输入不是数据中的国家/地区名称,则只需将源更改回原始数据即可。
将minLength设置为0然后使用搜索方法搜索“”将显示自动完成源数组中的所有数据。