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

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


当前回答

试试这个CSS

input[aria-controls=select2-product-type-results]{
  display: none;
}

这个输入是搜索字段

其他回答

如果选择显示结果,必须使用这个:

$('#yourSelect2ControlId').select2("close").parent().hide();

它关闭搜索结果框,然后设置控件不可见

用jQuery移除输入对我有用:

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

对于多选你必须写js代码,没有设置属性。

$('#js-example-basic-hide-search-multi').select2();

$('#js-example-basic-hide-search-multi').on('select2:opening select2:closing', function( event ) {
    var $searchfield = $(this).parent().find('.select2-search__field');
    $searchfield.prop('disabled', true);
});

这一点在他们的页面上提到了:https://select2.org/searching#multi-select

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

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

这是最好的解决方案,干净又好用:

$("#select2Id").select2 () ;
$("#select2Id").select2 ('container').find ('.select2-search').addClass ('hidden') ;

然后,创建一个类.hidden {display;none;}