对于更重要的选择,Select2中的搜索框非常棒。然而,在一个例子中,我有4个简单的硬编码选项。在这种情况下,搜索框是多余的,而且看起来有点傻。有没有办法把它藏起来?我在网上查阅了文档,在构造函数中找不到任何选项。
当然,我可以只使用常规的HTML选择,但为了保持一致性,如果可能的话,我希望使用Select2。
对于更重要的选择,Select2中的搜索框非常棒。然而,在一个例子中,我有4个简单的硬编码选项。在这种情况下,搜索框是多余的,而且看起来有点傻。有没有办法把它藏起来?我在网上查阅了文档,在构造函数中找不到任何选项。
当然,我可以只使用常规的HTML选择,但为了保持一致性,如果可能的话,我希望使用Select2。
当前回答
用jQuery移除输入对我有用:
$(".select2-search, .select2-focusser").remove();
其他回答
如果你想隐藏在初始打开,你正在通过ajax调用填充下拉列表,在你的select2声明的ajax块中添加以下内容:
beforeSend: function ()
{
$('.select2-search--dropdown').addClass('hidden');
}
然后在ajax请求成功后再次显示它(并聚焦):
success: function() {
$('.select2-search--dropdown').removeClass('select2-search--hide'); // show search bar then focus
$('.select2-search__field')[0].focus();
}
查看这个线程https://github.com/ivaynberg/select2/issues/489,您可以通过将minimumResultsForSearch设置为负值来隐藏搜索框。
$('select').select2({
minimumResultsForSearch: -1
});
对于多选你必须写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
这是最好的解决方案,干净又好用:
$("#select2Id").select2 () ;
$("#select2Id").select2 ('container').find ('.select2-search').addClass ('hidden') ;
然后,创建一个类.hidden {display;none;}
@Misha Kobrin的回答很适合我,所以我决定多解释一下
你想隐藏搜索框,你可以通过jQuery来实现。
例如,你已经初始化了select2插件在一个下拉列表中有id受众
element_select = '#audience';// id or class
$(element_select).select2("close").parent().hide();
该示例适用于select2工作的所有设备。