对于更重要的选择,Select2中的搜索框非常棒。然而,在一个例子中,我有4个简单的硬编码选项。在这种情况下,搜索框是多余的,而且看起来有点傻。有没有办法把它藏起来?我在网上查阅了文档,在构造函数中找不到任何选项。

当然,我可以只使用常规的HTML选择,但为了保持一致性,如果可能的话,我希望使用Select2。


当前回答

查看这个线程https://github.com/ivaynberg/select2/issues/489,您可以通过将minimumResultsForSearch设置为负值来隐藏搜索框。

$('select').select2({
    minimumResultsForSearch: -1
});

其他回答

我喜欢根据选择中的选项数量动态地执行此操作;隐藏搜索选择与10或更少的结果,我做:

$fewResults = $("select>option:nth-child(11)").closest("select");
$fewResults.select2();
$('select').not($fewResults).select2({ minimumResultsForSearch : -1 });

为了防止有人无意中发现这一点,现在在构造函数中有一个hideSearch选项,它似乎更接近问题所寻找的东西。

回声Select2::小部件(['名字' = >“状态”,“hideSearch”= > true,“数据”= >[1 = >“活跃”,2 = > '活动']]);

用jQuery移除输入对我有用:

$(".select2-search, .select2-focusser").remove();

你可以为minimumResultsForSearch选项设置无穷大或-1

解决方案1

裁判:https://select2.org/searching # limiting-display-of-the-search-box-to-large-result-sets

$('select').select2({
    minimumResultsForSearch: -1
});

解决方案2

裁判:https://select2.org/searching # hiding-the-search-box

$('select').select2({
   minimumResultsForSearch: Infinity
});

我编辑了select2.min.js文件,将生成的select-2__search输入字段设置为readonly="true"。