对于更重要的选择,Select2中的搜索框非常棒。然而,在一个例子中,我有4个简单的硬编码选项。在这种情况下,搜索框是多余的,而且看起来有点傻。有没有办法把它藏起来?我在网上查阅了文档,在构造函数中找不到任何选项。
当然,我可以只使用常规的HTML选择,但为了保持一致性,如果可能的话,我希望使用Select2。
对于更重要的选择,Select2中的搜索框非常棒。然而,在一个例子中,我有4个简单的硬编码选项。在这种情况下,搜索框是多余的,而且看起来有点傻。有没有办法把它藏起来?我在网上查阅了文档,在构造函数中找不到任何选项。
当然,我可以只使用常规的HTML选择,但为了保持一致性,如果可能的话,我希望使用Select2。
当前回答
对于多选你必须写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
其他回答
如果选择显示结果,必须使用这个:
$('#yourSelect2ControlId').select2("close").parent().hide();
它关闭搜索结果框,然后设置控件不可见
用jQuery移除输入对我有用:
$(".select2-search, .select2-focusser").remove();
如果你想隐藏特定下拉列表的搜索,可以使用id属性。
$('#select_id').select2({ minimumResultsForSearch: -1 });
我编辑了select2.min.js文件,将生成的select-2__search输入字段设置为readonly="true"。
如果你有多个属性在你的选择,这个肮脏的hack工作:
var multipleSelect = $('select[name="list_type"]');
multipleSelect.select2();
multipleSelect.parent().find('.select2-search--inline').remove();
multipleSelect.on('change', function(){
multipleSelect.parent().find('.select2-search--inline').remove();
});
查看文档https://select2.org/searching#limiting-display-of-the-search-box-to-large-result-sets