选择2在Bootstrap模式中选择

Str*_*rnd 10 modal-dialog jquery-select2 twitter-bootstrap-3

我已经检查了其他线程,涵盖了这个问题,但这些解决方案都不适用于我.

我正在使用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">&times;</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 -->
Run Code Online (Sandbox Code Playgroud)

我想要调用$('#products').select2(); 该插件在其他地方工作正常.但它被搞砸了一个模态:

http://imgur.com/rzcTVTD

更新:(不)在这里工作小提琴http://jsfiddle.net/Strernd/o0d3vtek/

Luí*_*ruz 25

您遇到的问题是,当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>
Run Code Online (Sandbox Code Playgroud)

您会注意到硬编码width: 100px会强制文本被"拆分".你可能在想"为什么地狱?!" 而且肯定的回答是:你正在使用测试版.

您可以通过以下方式解决此问题

  1. 强制width: 100%使用以下CSS代码:

    .select2-container {
        width: 100% !important;
        padding: 0;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    看看这个工作的jsfiddle(我col-xs在你的标签和另一个div中添加了一些类).请注意,只要您的文本宽度足够,此解决方案就可以正常工作.如果宽度小于文本你会遇到同样的问题,你需要调整CSS来添加overflow: auto;text-overflow: ellipsis;

  2. 使用最新的稳定版本3.5.2,正如此jsfiddle所示,它正常工作.

  • 非常感谢!你节省了我的时间:) (2认同)

Far*_*hid 7

当您想在模态中使用时,可以使用此链接select2

$('#my-select').select2({
    dropdownParent: $('#my-modal')
});
Run Code Online (Sandbox Code Playgroud)


dan*_*zar 6

span.select2-container {
    z-index:10050;
}
Run Code Online (Sandbox Code Playgroud)

当你有select2模态之外时不起作用.

EDIT

我发现当select2在Bootstrap Modal中使用它们时,这将是一个更好的解决方案.

.select2-container--open{
        z-index:9999999         
    }
Run Code Online (Sandbox Code Playgroud)


小智 5

我所做的是在页面上方添加此代码

    span.select2-container {
    z-index:10050;
}
Run Code Online (Sandbox Code Playgroud)

  • 请解释为什么这样做,不要只是'转码' (3认同)
  • z-index就足够了 (2认同)