如何使用 bootstrap-multiselect 动态隐藏/显示选项?

2024-04-18

我在用引导多选 http://davidstutz.github.io/bootstrap-multiselect/为用户提供对两个按键菜单的良好控制。我的第一个菜单叫做groups和其他称为queues。队列中的每个选项都有一个 HTML5 数据属性(即 data-group="X",其中 X 是组值)

当用户从选项/组中选择groups菜单,我想找到并隐藏每个队列/选项queues菜单在哪里data-group不等于组菜单中选定的组。

在确定需要隐藏/显示的队列/项目后,我尝试使用.show() and .hide()扩展。然后我尝试使用.addClass('hidden') and .removeClass('hidden')方法,但没有什么对我有用。

我如何动态显示/隐藏项目引导多选 http://davidstutz.github.io/bootstrap-multiselect/?

这是我的代码

$(function () {
    var queueGroupIds = $('#QueueGroupIds');
    var queueIds = $('#QueueIds');

    queueGroupIds.multiselect({
        nonSelectedText: 'Select group(s)',
        onChange: function (option, checked, select) {
            var groups = queueGroupIds.find('option:selected');

            if (groups.length == 0) {
                //When none of the groups are selected, show all queues!
                queueIds.find('option').each(function (i, q) {
                    $(q).show();
                });
            }

            var queueToDeselect = [];

            //loop over every select option "if any are selected"
            groups.each(function (index, grp) {
                var group = $(grp);

                // loop over every queue option
                queueIds.find('option').each(function (i, q) {
                    var queue = $(q);

                    //id the data-group value == selected group show the item
                    if (queue.data('group') == group.val()) {
                        queue.show();

                        //this prints the value which should be showing
                        console.log('showing', queue.val());
                    } else {
                        queueToDeselect.push(queue.val());
                        queue.hide();

                        //this prints the value which should be hidden
                        console.log('hidding', queue.val());
                    }
                });

            });

            //Delected all hidden queues
            queueIds.multiselect('deselect', queueToDeselect);
            queueIds.multiselect('refresh');
        }
    });

    queueIds.multiselect({
        nonSelectedText: 'Select queue(s)'
    });
});

编辑为默认未选择: 以下小提琴手中显示的示例(为了清楚起见,我已将其精简为基本示例):https://jsfiddle.net/m6uuL53w/3/ https://jsfiddle.net/m6uuL53w/3/

无需任何手动混乱的 DOM ADD/REMOVE 操作。多选将继承您放在原始列表中的禁用类,因此您只需在设置禁用值并刷新列表后使用 css 定位它。让多选担心 dom 操作。

HTML 示例:

<select id="one" multiple="multiple">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

<select id="two" multiple="multiple">
    <option data-group="1" value="OneA" disabled >One A</option>
    <option data-group="1" value="OneB" disabled>One B</option>
    <option data-group="2" value="TwoA" disabled>Two A</option>
    <option data-group="2" value="TwoB" disabled>Two B</option>
    <option data-group="3" value="ThreeA" disabled >Three A</option>
</select>

Jquery:

$(document).ready(function() {
    $('#one').multiselect({
        onChange: function(element, checked) {
        var opts = $('*[data-group="'+ element.val() +'"]');
            if (checked === true) {
                opts.prop('disabled', false).prop('selected', false);
            }
            else if (checked === false) {
                opts.prop('disabled', true).prop('selected', false);
            }
            $("#two").multiselect('refresh');
        }
    });
    $('#two').multiselect();
});

只需一点CSS:

.multiselect-container > li.disabled { display:none;}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 bootstrap-multiselect 动态隐藏/显示选项? 的相关文章

随机推荐

  • 删除 PO 文件的所有模糊条目

    有谁知道从 PO 文件中批量删除所有模糊翻译的方法 就像是 if fuzzy TRUE 然后 SET msgstr AND REMOVE fuzzy 如果安装了 gettext 您可以使用 msgattrib 命令来完成此操作 msgatt
  • UISearchDisplayController 上出现僵尸问题

    我在使用带有 UITableView 的 UISearchDisplayController 时遇到了僵尸 UISearchDisplayController 以及视图的其余部分 是通过界面生成器 xcode 5 上的故事板并仅使用 ARC
  • 请求的 dll 执行级别

    我正在开发一个 WinForms 应用程序 Vista Win7 中有一小部分功能需要以管理员身份运行 我了解如何在清单中设置应用程序的requestedExecutionLevel 诀窍是 我不想要求用户以管理员身份运行整个应用程序 而只
  • 有没有简单的 Java REST 教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C++ - 指针传递问题

    有人对如何通过有任何想法吗boost shared ptr 按值或按引用 在我的平台上 32位 sizeof shared ptr 等于 8 个字节 看起来我应该通过引用传递它们 但也许有人有其他意见 做了配置文件 类似的东西 在 C 中
  • 避免从主干视图重新渲染图像和其他内容

    当我重新渲染主干视图时 有什么好方法可以跳过重新渲染图像和谷歌地图等内容 每次重新渲染视图时 我的照片和地图视图都会闪烁得很厉害 这种情况很常见 特别是对于图像 模板引擎从头开始布局布局 这会导致图像标记再次从服务器或从缓存中获取位图 当然
  • 您能解释一下流的概念吗?

    我知道流是字节序列的表示 每个流都提供了向其给定的后备存储读取和写入字节的方法 但流的意义何在 为什么我们与之交互的不是后备存储本身 不管出于什么原因 这个概念并不适合我 我读过很多文章 但我想我需要一个类比或其他东西 选择 流 这个词是因
  • 使用多个存储库构建 VSTS

    我的团队使用 VSTS 进行 Web 项目的 CI CD 为了保持代码分离 我们为前端和后端使用两个单独的存储库 由此提出两个问题 如何设置将两个存储库中的构建工件合并到单个版本中的构建 如何分别从每个存储库触发这个单一构建 发布过程 第一
  • Laravel 在关系模型上按角色名称进行雄辩排序

    我遇到了一个问题 我必须根据模型的关系数据对模型集合进行排序 排序 我已经这样设置了 Models User Team TeamUser Role The TeamUser模型是一个枢轴模型 表 包含user id and team id
  • 悬停时圆形裁剪为圆形边框

    I have an unordered list displayed as a table Each list element contains an image and a name title The image is cropped
  • 如何增加雪花中的可变大小限制?

    我正在尝试通过执行例如来设置变量 SET Variable 1 xxxx 但收到此错误 未完成对 Variable 1 的分配 因为值超出了变量的大小限制 其大小为 309 限制为 256 内部存储大小以字节为单位 另一种方法可以是使用 S
  • 对包含字符串、日期和数字的数组进行排序

    var myArray aaaa 2013 09 25 ssss9 txt aaaa 2013 09 25 ssss8 txt aaaa 2013 09 26 ssss1 txt aaaa 2013 09 25 ssss10 txt aaa
  • 如何在计时器触发后正确调用函数进行单元测试。角度 7、RXJS 6

    在我的 Angular 7 应用程序中 我有一个用于跟踪活动用户任务的服务 在该服务中 计时器每秒运行一次 以检查是否有任何任务在 30 秒内仍未完成 如果发现任何任务已过期 则该任务将通过服务上的事件发射器发出 以便在其他地方处理 当应用
  • Node.js 快速文件服务器(通过 HTTP 的静态文件)

    是否有 Node js 即用工具 安装时使用npm 这将帮助我通过 HTTP 将文件夹内容公开为文件服务器 例如 如果我有 D Folder file zip D Folder file2 html D Folder folder file
  • 从随机像素进行图像插值

    我想问一个关于单通道图像插值的问题 选择单通道只是为了简单起见 否则我正在处理多通道图像 假设有一个纯黑色背景 像素强度为0 的单通道图像 其上有一些强度值非零的像素 我想应用插值算法 用来自相邻非零强度像素的插值填充图像的整个黑色区域 您
  • 有没有办法指定图像的最大高度或宽度?

    我希望图像的高度为 725 或宽度为 500 并保持其纵横比 当我的图像高度超过 725 且厚度小于 500 时 它们会被拉伸以适合 500 的宽度 做这个的最好方式是什么 以下是我现在正在做的事情
  • 反序列化 json 对象数组,其中包含 json 对象

    如何在 C 中反序列化 json 对象数组 这是我的 json id 255521115 user username userinfo id 158 online false 我有这个代码来获取用户名 JsonProperty user p
  • javascript - 按钮需要单击两次才能触发 onclick

    为什么我的按钮需要单击两次才能触发 onclick 事件 stackoverflow 上还有其他一些线程也存在同样的问题 但在我发现的所有线程中 原始发布者将事件处理程序放在函数内 我的代码不是这样的 Html ul li First ch
  • 在 JavaScript 中从具有任意基数的整数生成字符串

    在 JavaScript 中 您可以从数字生成字符串 如下所示 123 toString 36 gt 3f 如果你尝试做任意基础 123 toString 40 You get Uncaught RangeError toString ra
  • 如何使用 bootstrap-multiselect 动态隐藏/显示选项?

    我在用引导多选 http davidstutz github io bootstrap multiselect 为用户提供对两个按键菜单的良好控制 我的第一个菜单叫做groups和其他称为queues 队列中的每个选项都有一个 HTML5