繁体   English   中英

bootstrap-select 在 Bootstrap 下拉菜单中不起作用

[英]bootstrap-select not working inside of Bootstrap dropdown menu

我正在尝试从 Bootstrap 下拉菜单中的bootstrap-select 库中放置一个多选输入。 问题是,当我打开 Bootstrap 下拉菜单并单击多选输入时,下拉菜单会关闭,并且似乎无法在下拉菜单中使用输入。

在下拉菜单之外,输入工作正常,但如果下拉菜单打开,它会在我单击多选输入时立即关闭,即使多选输入位于 Bootstrap 下拉菜单之外

我怎样才能让它工作,所以当我点击下拉菜单中的多选输入时,下拉菜单保持打开状态,我可以自由选择多选输入中的任何选项?

这是我的代码( JSFiddle ):

<div class="dropdown mb-4 text-dark" id="myDD">
    <a class="btn dropdown-toggle text-muted btn-block btn-grey py-2 font-weight-bold "
       style="color: black !important; font-size: .8em;" href="#" role="button"
       id="dropdownMenuLink"
       data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
       data-display="static">
        <i class="fas fa-sliders-h mr-2"></i> Menu
    </a>
    <div class="dropdown-menu bg-transparent border-0 mt-2"
         aria-labelledby="dropdownMenuLink"
         style="position: relative; float: none;">
        <form>
            <div class="input-group mb-3">
                <label for="inputGroupSelect05"
                       class="text-dark d-block w-100 mb-1">Input text</label>
                <input type="text" class="form-control form-control-sm" placeholder="text input">
            </div>

            <div class="input-group mb-3 multi-select ">
                <label for="inputGroupSelect02" class="text-dark d-block w-100 mb-1">Click causes close of dropdown</label>
                <select style="color: #495057 !important;" class="w-100" multiple data-selected-text-format="count" data-style="custom-select custom-select-sm" id="test-select">
                    <option>1</option>
                    <option>2</option>
                    <option selected>3</option>
                    <option selected>4</option>
                    <option selected>5</option>
                </select>
            </div>
        </form>
    </div>
</div>

我已经尝试使用 JQuery 的许多解决方案来解决相关问题,但我无法让它们中的任何一个工作。 有人知道我能做什么吗?

您的选择框打开,但菜单被隐藏,因此为了避免这种情况,一种方法是手动控制菜单的打开/关闭。 因此,每当单击菜单时,从dropdown菜单以及从dropdown-menu中添加/删除 class显示

演示代码

 $(document).ready(function() { $('#test-select').selectpicker(); $('#test-select2').selectpicker(); //onclick of dropdown toggle $('#myDD > a.dropdown-toggle').on('click', function(event) { $(this).parent().toggleClass('show')//addor remove class $(this).attr('aria-expanded', $(this).attr('aria-expanded') == 'false'? 'true': 'false'); //add true or false $("div[aria-labelledby=" + $(this).attr('id') + "]").toggleClass('show') //add class/remove }); $('body').on('click', function(e) { //check if the click occur outside `myDD` tag if yes..hide menu if (.$('#myDD').is(e.target) && $('#myDD').has(e.target).length === 0 && $('.show').has(e.target).length === 0 ) { //remove clases and add attr $('#myDD').removeClass('show') $('#myDD > a'),attr('aria-expanded'; 'false'). $("#myDD").children('div.dropdown-menu');removeClass('show') } }); });
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css"> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/js/bootstrap-select.min.js"></script> <div class="dropdown mb-4 text-dark" id="myDD"> <a class="btn dropdown-toggle text-muted btn-block btn-grey py-2 font-weight-bold " style="color: black;important: font-size. ;8em:" href="#" role="button" id="dropdownMenuLink" aria-haspopup="true" aria-expanded="false" data-display="static"> <i class="fas fa-sliders-h mr-2"></i> Menu </a> <div class="dropdown-menu bg-transparent border-0 mt-2" aria-labelledby="dropdownMenuLink" style="position; relative: float; none:"> <form> <div class="input-group mb-3"> <label for="inputGroupSelect05" class="text-dark d-block w-100 mb-1">Input text</label> <input type="text" class="form-control form-control-sm" placeholder="text input"> </div> <div class="input-group mb-3 multi-select "> <label for="inputGroupSelect02" class="text-dark d-block w-100 mb-1">Click causes close of dropdown</label> <select style="color; #495057:important;" class="w-100" multiple data-selected-text-format="count" data-style="custom-select custom-select-sm" id="test-select"> <option>1</option> <option>2</option> <option selected>3</option> <option selected>4</option> <option selected>5</option> </select> </div> </form> </div> </div> <div class="input-group mb-3 multi-select "> <label for="inputGroupSelect02" class="text-dark d-block w-100 mb-1">Click causes close of dropdown if open</label> <select style="color: #495057 !important;" class="w-100" multiple data-selected-text-format="count" data-style="custom-select custom-select-sm" id="test-select2"> <option>1</option> <option>2</option> <option selected>3</option> <option selected>4</option> <option selected>5</option> </select> </div>

Bootstrap select 不再支持 Bootstrap 5,所以改用多选库。 https://multiple-select.wenzhixin.net.cn/examples

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM