我已经检查过其他线程,已经覆盖了这个问题,但这些解决方案都不适用于我。
我使用的是jquery 1.11.2,select2-4.0.0-beta.3和bootstrap-3.3.1
我的模态如下:
<div class="modal fade" id="addProductModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Add Product</h4>
</div>
<div class="modal-body">
{!! BootForm::openHorizontal(2,10)->action('/recipes/'.$recipe->id.'/product')->post() !!}
{!! BootForm::select('Produkte: ','product_list[]' , $products)->id('products') !!}
{!! BootForm::submit('Erstellen') !!}
{!! BootForm::token() !!}
{!! BootForm::close() !!}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Schließen</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
我想致电$('#products').select2();
该插件在其他地方工作正常。但是它被搞砸了一种模式:
更新:(不)在这里工作小提琴http://jsfiddle.net/Strernd/o0d3vtek/
答案 0 :(得分:24)
您遇到的问题是,当Select2绑定到选择时,生成的范围类似于:
<span class="select2 select2-container select2-container--default" dir="ltr" style="width: 100px;">
<span class="selection">
<span class="select2-selection select2-selection--single" tabindex="0" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false" aria-owns="select2-products-results" aria-labelledby="select2-products-container">
<span class="select2-selection__rendered" id="select2-products-container">Mein Produkt</span>
<span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>
</span>
</span>
<span class="dropdown-wrapper" aria-hidden="true"></span>
</span>
您会注意到强制文本被“拆分”的硬编码width: 100px
。你可能在想“为什么地狱?!”而且肯定的回答是:你正在使用测试版。
您可以通过以下方式解决此问题:
使用以下CSS代码强制width: 100%
:
.select2-container {
width: 100% !important;
padding: 0;
}
看看this working jsfiddle(我在你的标签上添加了一些col-xs
类,另外一个div)。请注意,只要您的文本宽度足够,此解决方案就可以正常工作。如果宽度小于文字,则会出现同样的问题,您需要调整CSS以添加overflow: auto;
和text-overflow: ellipsis;
使用最新的稳定版本3.5.2,该版本可正常用作this jsfiddle shows。
答案 1 :(得分:6)
span.select2-container {
z-index:10050;
}
当你在模态之外有select2
时,不起作用。
EDIT
我发现在Bootstrap Modal中使用select2
并在它们之外时,这将是一个更好的解决方案。
.select2-container--open{
z-index:9999999
}
答案 2 :(得分:5)
我所做的是在页面上方添加此代码
span.select2-container {
z-index:10050;
}
答案 3 :(得分:1)
如果您想在模态中使用select2
,可以使用此link:
$('#my-select').select2({
dropdownParent: $('#my-modal')
});