我想用 select2 实现的目标是在单击选择时显示所有选项(这是默认行为),但仅在输入字段中有 3 个或更多字符时过滤结果。
我可以添加最小输入长度选项所需的最少字符,但我丢失了选项的初始列表。
您可以通过使用匹配器来实现这一点。
我定义了一个匹配器如下:
matcher: function(term, data) {
// If less than 3 characters are typed return all of the data
if (term.length < 3) {
return data;
}
// 3 or more characters typed so perform filter
return data.toUpperCase().indexOf(term.toUpperCase()) == 0;
}
term
是输入的字符,data
是我们要检查的数据。检查 term
的长度,如果它小于 3,那么我们返回这个 data
项目(因为我们希望显示所有项目)。否则(即输入 3 个或更多字符),我们检查 data
项是否包含输入的 term
,如果为 true则返回它
请参阅 this Fiddle 进行演示。当输入 3 个或更少的字符时,它会显示完整列表。当输入超过 3 个字符时,如果执行过滤。