即使输入与任何字符串都不匹配,如何在 Jquery 自动完成中显示所有选项

How to display all options in Jquery auto complete even if the input does not match any of the strings

我正在使用 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

中的技巧

如果搜索输入包含一个国家/地区的名称,您可以获得该国家/地区的城市列表并执行以下操作:

$( "#citySearch" ).autocomplete({ source: citySearchList, minLength :0 });
$( "#citySearch" ).autocomplete("search", "");

当输入的不是数据中的国家/地区名称时,您只需将源更改回原始数据即可。

将minLength设置为0,然后使用search方法搜索"",将显示自动补全源数组中的所有数据。