当我在引导模式中使用select2 (input)时,我不能输入任何东西。就像残疾?在modal之外select2工作正常。

工作示例:http://jsfiddle.net/byJy8/1/ 代码:

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">Panel</h3>
    </div>
    <div class="modal-body" style="max-height: 800px">          
      <form class="form-horizontal">
        <!-- Text input-->
        <div class="control-group">
            <label class="control-label" for="vdn_number">Numer</label>
            <div class="controls">
                <!-- seleect2 -->
                <input name="vdn_number" type="hidden" id="vdn_number"  class="input-large" required=""  />
            </div>
        </div>
      </form>    
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>

JS

$("#vdn_number").select2({
    placeholder: "00000",
    minimumInputLength: 2,
    ajax: {
        url: "getAjaxData/",
        dataType: 'json',
        type: "POST",
        data: function (term, page) {
            return {
                q: term, // search term
                col: 'vdn'
            };
        },
        results: function (data) { // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to alter remote JSON data
            return {results: data};
        }
    }
});

答案:

在这里你可以找到一个快速的解决方法

这里是“正确的方法”:Select2在嵌入引导模式时不起作用


当前回答

我也有同样的问题,更新.select2-container的z-index应该可以解决这个问题。确保模态的z指数低于select2的z指数。

.select2-container {
    z-index: 99999;
}

更新: 如果上面的代码不能正常工作,也可以像@breq建议的那样从你的模式中删除表索引

其他回答

更改select2.css文件

z-index: 9998;
...
z-index: 9999;
...
z-index: 10000;

to

z-index: 10000;
...
z-index: 10001;
...
z-index: 10002;

我在一个应用程序中遇到了一个半相关的问题,所以我将输入我的2c。

我有多个形态的形式包含select2小部件。打开模态A,然后打开模态A中的另一个模态,将导致模态B中的select2小部件消失,无法初始化。

这些模式都是通过ajax加载表单的。

解决方案是在关闭模态时从dom中删除表单。

$(document).on('hidden.bs.modal', '.modal', function(e) {
    // make sure we don't leave any select2 widgets around 
    $(this).find('.my-form').remove();
});

设置dropdownParent。我必须在modal中设置。modal-content,否则文本会居中。

$("#product_id").select2({
    dropdownParent: $('#myModal .modal-content')
});

好吧,我知道我迟到了。但让我和你们分享对我有效的方法。 tabindex和z-index解决方案不适合我。

设置select元素的父元素按照select2站点上列出的常见问题工作。

在我的情况下,我这样做,它工作。我使用bundle来加载它,在这种情况下,它为我工作

 $(document).on('select2:select', '#Id_Producto', function (evt) {
   // Here your code...
  });