Select2 - 在开头显示所有结果,但在4个字符后开始过滤

时间:2016-09-26 15:26:22

标签: javascript select2

我想用select2实现的目的是在单击选择时显示所有选项(这是默认行为),但只在输入字段中有3个或更多字符时过滤结果。

我可以使用minimumInputLenght选项添加所需的最小字符,但是我丢失了选项的初始列表。

1 个答案:

答案 0 :(得分:0)

您可以使用matcher

来实现此目的

我已经定义了一个匹配器如下:

val totalById = list
                    .filter { it.status == StatusEnum.Active }
                    .groupBy { it.item.id }
                    .mapValues { it.value.sumBy { it.amount } }

Collectors.groupingBy(i-> i.getItem().getId(), Collectors.mapping(Item::getAmount, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))))是输入的字符,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的长度,如果小于3,则返回此data项(因为我们希望显示所有项目)。否则(即输入3个或更多字符),我们检查term项是否包含data类型,如果为真则返回

请参阅this Fiddle了解演示。键入3个或更少字符时,将显示完整列表。如果执行过滤,则输入的字符数超过3个。