【问题标题】:bootstrap-select - dropdown disappeares when i add selectpicker class to the select tagbootstrap-select - 当我将 selectpicker 类添加到选择标签时,下拉菜单消失
【发布时间】:2017-07-15 18:17:40
【问题描述】:

当我将selectpicker 类添加到我的选择标签并在浏览器中运行我的页面时,它不会显示任何<select> 框...
详细信息,当我删除 selectpicker 类时,它运行正常。无论如何,在代码源中可以看到选择框。

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.3/css/bootstrap-select.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.3/js/bootstrap-select.min.js"></script>

<!-- (Optional) Latest compiled and minified JavaScript translation files -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.3/js/i18n/defaults-*.min.js"></script>



<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</head>
<body>

<select class="selectpicker" data-live-search="true" name="cidade">

<option value="test1">Test 1</option>
<option value="test2">Test 2</option>
<option value="test3">Test 3</option>
</select>

</body>

【问题讨论】:

  • 同时添加 jQuery

标签: javascript html twitter-bootstrap bootstrap-select


【解决方案1】:

我遇到了类似的问题。通过对我的控制器的AJAX 请求,返回了带有HTML 的字符串,但我无法将其附加到DOM。尽管如此,它还是在检查后出现在DOM 中。原来问题出在selectpicker 类。删除后,HTML 已成功附加,并且该元素自然没有按预期运行。 经过一番搜索,我遇到了以下解决方案:

$('.selectpicker').selectpicker('refresh')

找到它here 并解释为什么会发生这种情况。 希望这会有所帮助。

干杯!

【讨论】:

    【解决方案2】:

    将您的 JQuery 脚本放在您的 Bootstrap 脚本之前。
    它为我修好了。

    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta2/js/bootstrap-select.min.js" integrity="sha512-FHZVRMUW9FsXobt+ONiix6Z0tIkxvQfxtCSirkKc5Sb4TKHmqq1dZa8DphF0XqKb3ldLu/wgMa8mT6uXiLlRlw=="crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    

    【讨论】:

      【解决方案3】:

      如果您使用 bootstrap 3.3.7,则必须在 bootstrap 插件之前包含 JQuery。 像这样

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
      <!-- other javascript inludes follows -->
      

      【讨论】:

        【解决方案4】:

        这是我在 class=selectpicker 时使选择消失的解决方案。当我动态添加引导选择时出现了我的问题。经过一天的搜索,我找到了解决方案。我没有在网上看到这个解决方案。

        附加选择项后必须使用.selectpicker命令。这是我的代码。

        我希望这个解决方案适用于所有人..

        var selectLocaleList = document.createElement("select");
        selectLocaleList.setAttribute("id", "myLocaleSelect");
        selectLocaleList.setAttribute("class", "form-control");
        selectLocaleList.setAttribute("data-style", "btn-danger");
        //Create and append the options
        $(selectLocaleList).append('<option value="tr">Turkish</option>');
        $(selectLocaleList).append('<option value="en">English</option>');
        //This is the append code below that adds the select to the page. And this code must be ovet the .selectpicker 
        modalBody.appendChild(selectLocaleList);
        //And this is the .selectpicker after the append..
        $(selectLocaleList).selectpicker('val', settings.locale)
                           .on('change', function () {
                               // Some functions
                           });
        

        【讨论】:

          【解决方案5】:

          你需要在之前加入 jQuery Bootstrap 和 bootstrap-select。此外,您需要在所有 Bootstrap 文件之后包含所有 bootstrap-select 文件(在您的代码中,您在 Bootstrap CSS 之前包含 bootstrap-select CSS)。

          【讨论】:

            【解决方案6】:

            如果您要动态填充&lt;option&gt;,我的建议是在完成附加部分后刷新.selectpicker $(".selectpicker").selectpicker('refresh');

            【讨论】:

              猜你喜欢
              • 2017-12-24
              • 1970-01-01
              • 1970-01-01
              • 2013-04-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-11-14
              相关资源
              最近更新 更多