繁体   English   中英

Bootstrap下拉复选框选择

[英]Bootstrap dropdown checkbox select

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

这是一个小提琴的例子

在此输入图像描述

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

$(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);
        });
    });
});

我知道这是一个古老的问题,但是,你仍然可以使用这个库来做几乎所有的事情(除了你提出的确切设计)你想要什么http://davidstutz.github.io/bootstrap-multiselect/#getting-started

如果您添加一个函数以在悬停时显示菜单,则以下代码适用于Bootstrap 4.1 ,但是当您单击<li>时,您的复选框将变为不可点击。 任何人都有更好的解决方案请提供。

<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();
});

UPDATE

下面的代码工作正常,但复选框事件被触发两次,因此必须选择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();
});

暂无
暂无

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

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