Bootstrap下拉复选框选择

时间:2014-04-16 08:09:18

标签: javascript jquery html css twitter-bootstrap

我尝试使用复选框自定义引导下拉列表,如果我从下拉列表中选中一个复选框,则我希望在输入下拉列表中使用' ;'就像dropdown关闭时上传的图片一样。

这是fiddle example

enter image description here

3 个答案:

答案 0 :(得分:16)

不是最优雅的解决方案 - 您可能希望稍微改进一下,但这可能会让您开始:

$(document).ready(function() {
    $("ul.dropdown-menu input[type=checkbox]").each(function() {
        $(this).change(function() {
            var line = "";
            $("ul.dropdown-menu input[type=checkbox]").each(function() {
                if($(this).is(":checked")) {
                    line += $("+ span", this).text() + ";";
                }
            });
            $("input.form-control").val(line);
        });
    });
});

答案 1 :(得分:9)

我知道这是一个古老的问题但是,您仍然可以使用此库来执行几乎(除了您提出的确切设计)您想要的内容http://davidstutz.github.io/bootstrap-multiselect/#getting-started

答案 2 :(得分:1)

下面的代码在 Bootstrap 4.1 中起作用,如果您添加了一个在悬停时显示菜单的功能,但是当您单击

  • 时,您的复选框将变为不可单击。任何有更好解决方案的人都可以提供。

    <ul class="dropdown-menu dropdown-menu-form">
      <li><label class="checkbox"><input type="checkbox">One</label></li>
      <li><label class="checkbox"><input type="checkbox">Two</label></li>
    </ul>
    

    并添加以下JS代码:

    // Allow Bootstrap dropdown menus to have forms/checkboxes inside, 
    // and when clicking on a dropdown item, the menu doesn't disappear.
    $(document).on('click', '.dropdown-menu.dropdown-menu-form', function(e) {
      e.stopPropagation();
    });
    

    更新

    下面的代码运行良好,但是复选框事件被触发了两次,因此必须选择onchange事件而不是onclick

    <ul class="dropdown-menu dropdown-menu-form">
      <li><label class="checkbox"><input type="checkbox" onchange="some()">One</label></li>
      <li><label class="checkbox"><input type="checkbox" onchange="some()">Two</label></li>
    </ul>
    

    和jquery代码如下:

    $(document).on('click', '.dropdown-menu', function (e) {
        e.stopPropagation();
    });
    
  • 相关问题