select2 - 为输入和下拉设置不同的宽度

nav*_*ram 46 css jquery select jquery-select2

我正在使用Select2 3.3.2

我在选择中有很长的选择.例:

<select id="e1">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
<option value="WY">very long long long text</option>
<option value="WY">very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text</option>
</select>
Run Code Online (Sandbox Code Playgroud)

目的是避免在下拉列表打开时包装选项.

我想在打开时为下拉列表设置长宽度(例如 - 800px,甚至自动评估宽度).

但是在下拉菜单关闭时保持输入的宽度较短(例如300px).

我按照select2的"添加选项来设置下拉宽度"问题.

但我无法使它工作,选项/下拉列表的宽度与输入的宽度和包装到多行的选项相同.

以下是jsfiddle中我的问题的演示 - http://jsfiddle.net/ewwAX/

感谢大家提前帮忙.

Dav*_*ett 85

Select2包含'dropdownAutoWidth'参数,该参数使用javascript尝试足够宽的下拉内容.

$('#whatever').select2({dropdownAutoWidth : true});
Run Code Online (Sandbox Code Playgroud)

这至少适用于Select2 3.4.3 - 我不知道它早些引入了多少.

  • 在版本4.0.0-rc.2中不起作用 (9认同)
  • 适用于4.0.2. (3认同)
  • 适用于 4.0.6-rc.1 (2认同)

Yer*_*imo 59

您使用的属性不是用于控制下拉宽度.您可以使用该dropdownCssClass物业.

这是jsFiddle的演示.

JavaScript:

$(document).ready(function() { 
    $("#e1").select2({dropdownCssClass : 'bigdrop'}); 
});
Run Code Online (Sandbox Code Playgroud)

CSS:

.bigdrop {
    width: 600px !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 这里没有工作-select2.min.js:1未捕获的错误:没有select2 / compat / dropdownCss无法在最新版本中设置宽度吗?这让我疯狂 (3认同)
  • 您好,您也可以帮助我吗?我希望下拉菜单应该像您的小提琴一样宽,但是一旦选择,无论日期有多宽,它都应该恢复到正常宽度 (2认同)

Ash*_*K P 10

$("#e1").select2({ width: '100%' });      
Run Code Online (Sandbox Code Playgroud)

试试这个.这会将容器的宽度设置为100%


Ron*_* D. 8

更好的解决方案.使用:

$('#e1').select2({width: 'resolve'});
Run Code Online (Sandbox Code Playgroud)


小智 8

尝试这个。

$(".js-example-basic-single").select2({dropdownAutoWidth : true});
Run Code Online (Sandbox Code Playgroud)