jQuery Multiselect - 全选并带有过滤搜索

2024-06-28

当您使用search feature,然后使用select_all它不能一起工作,它选择“所有内容”,就好像搜索没有进行任何更改,但搜索本身“隐藏”元素。它应该只选择所有的项目visible

想知道其他人是否遇到过这个问题或知道解决方案。如果有人可以提供帮助,再次感谢!

使用jQuery 多选插件: http://loudev.com http://loudev.com

这是我当前正在使用的代码,搜索利用quicksearch js

$('.multiSelect').multiSelect({
  selectableHeader: "<div><a href='#' id='select-all'>select all</a></div><input type='text' class='search-input form-control' autocomplete='off' placeholder='search' style='margin-bottom:5px'>",
  selectionHeader: "<div><a href='#' id='deselect-all'>deselect all</a></div><input type='text' class='search-input form-control' autocomplete='off' placeholder='search' style='margin-bottom:5px'>",
  afterInit: function(ms){
    var that = this,
        $selectableSearch = that.$selectableUl.prev(),
        $selectionSearch = that.$selectionUl.prev(),
        selectableSearchString = '#'+that.$container.attr('id')+' .ms-elem-selectable:not(.ms-selected)',
        selectionSearchString = '#'+that.$container.attr('id')+' .ms-elem-selection.ms-selected';

    that.qs1 = $selectableSearch.quicksearch(selectableSearchString)
    .on('keydown', function(e){
      if (e.which === 40){
        that.$selectableUl.focus();
        return false;
      }
    });

    that.qs2 = $selectionSearch.quicksearch(selectionSearchString)
    .on('keydown', function(e){
      if (e.which == 40){
        that.$selectionUl.focus();
        return false;
      }
    });
  },
  afterSelect: function(){
    this.qs1.cache();
    this.qs2.cache();
  },
  afterDeselect: function(){
    this.qs1.cache();
    this.qs2.cache();
  }
});


$('#select-all').on('click',function(){
  $('.multiSelect').multiSelect('select_all');
  return false;
});

$('#deselect-all').on('click',function(){
  $('.multiSelect').multiSelect('deselect_all');
  return false;
});

jsfiddle 进行演示:http://jsfiddle.net/b8ygzqca/6/ http://jsfiddle.net/b8ygzqca/6/


我昨天遇到了同样的问题。我也四处寻找解决方案,但只找到了你的帖子。这是我的解决方案。请注意,我实际上更新了源代码以使我的解决方案正常工作。我修改了“select_all”函数:

'select_all': function () {
        var that = this,
            ms = this.$element,
            values = ms.val(),
            selectables = this.$selectableUl.find('.ms-elem-selectable').filter(':not(.' + this.options.disabledClass + ')').filter(':visible');

        ms.find('option:not(":disabled")')
            .filter(function (index) {
                var it = this,
                    msValue = selectables
                        .filter(function () {
                            return $(this).data('ms-value') === it.value;
                        })
                        .data('ms-value');
                return msValue === this.value;
            })
            .prop('selected', true);
        selectables.addClass('ms-selected').hide();
        this.$selectionUl.find('.ms-optgroup-label').show();
        this.$selectableUl.find('.ms-optgroup-label').hide();
        this.$selectionUl
            .find('.ms-elem-selection')
            .filter(':not(.' + this.options.disabledClass + ')')
            .filter(function (index) {
                return that.$selectableUl.find('#' + $(this).attr('id').replace('-selection', '-selectable') + '.ms-selected' ).length === 1;
            })
            .addClass('ms-selected')
            .show();
        this.$selectionUl.focus();
        ms.trigger('change');
        if (typeof this.options.afterSelect === 'function') {
            var selectedValues = $.grep(ms.val(), function (item) {
                return $.inArray(item, values) < 0;
            });
            this.options.afterSelect.call(this, selectedValues);
        }
    },

我添加了一个“that”变量,然后在 this.$selectableUl 和 this.$selectionUl 上添加了额外的过滤器调用。我还更新了如何选择 ms 上的选项。希望这也对你有用。

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

jQuery Multiselect - 全选并带有过滤搜索 的相关文章

随机推荐

  • Angular 为多个根路径重用相同的延迟加载模块

    我将我的应用程序分成两个模块 一个具有主要的基本功能 另一个具有较少使用的功能 例如帐户设置 常见问题解答页面等 我想要完成的是延迟加载某些根路由路径的第二个模块 例如 account or settings无需创建许多不同的模块 据我所知
  • apache2如何允许跨域请求

    这是我的配置文件
  • 使用 Gradle 将 Lint 结果发布到 Sonar

    我正在尝试使用 Gradle 将 Lint 结果发布到声纳服务器 其他分析结果已发布 但 Lint 结果未发布 有谁有让这个工作的经验吗 我找不到任何附加信息 声纳的版本是3 5 1 Gradle的版本是1 10 顶层构建文件如下所示 有
  • 在 matplotlib 中在图像上绘制网格线

    如何在 tiff 图像上绘制规则网格线 我想在图像上的每个间隔 例如 100 x 100 像素 绘制规则的方形网格 并将其与绘图一起保存 我还需要将每个网格 ID 覆盖为 1 2 在每个网格框的中间 您需要安装 python 成像库 PIL
  • 通过 JavaScript 选择 CascadingDropDown 中的项目并调用更新

    在代码隐藏中 我可以这样做来选择某些内容 Select item in first DropDownList myCascadingDropDown 1 SelectedValue itemValue 1 itemText 1 Select
  • 构造稀疏矩阵后,从稀疏到密集再到稀疏的转换会再次降低密度

    我使用 scipy 生成稀疏有限差分矩阵 最初从块矩阵构建它 然后编辑对角线以考虑边界条件 得到的稀疏矩阵是BSR类型的 我发现如果我将矩阵转换为稠密矩阵 然后使用以下命令返回稀疏矩阵scipy sparse BSR matrix函数 我留
  • 登录 WordPress 后重定向

    我正在根据现有网站创建自定义 WordPress 主题 我想使用我创建的备用仪表板 我怎样才能将用户定向到 news php 登录后而不是 wp admin EDIT 为此有一个可用的插件 但任何可以通过functions php找到手动方
  • 如何测试工厂类?

    给定这个类 class MyBuilder public function build param1 param2 build dependencies return new MyClass dep1 dep2 dep3 我如何对这个类进行
  • C 中的指针运算和运算符优先级

    背景 今天刚和一个 C 人聊天 我们在以下问题上存在分歧 int intgA 2 1 2 int intgB 2 3 5 int intAPtr intgA int intBPtr intgB 所以当我们这样做时 intAPtr intBP
  • 如何在某个 virtualenv 中列出已安装的软件包列表?

    You can cd to YOUR ENV lib pythonxx site packages 看看 但是有什么方便的方法吗 pip freeze列出所有已安装的软件包 包括系统环境的软件包 您只能列出包virtualenv by pi
  • 如何仅将背景颜色设置为选择的一部分? CSS

    我有这个样本 link https jsfiddle net 852aseb0 3 代码 HTML div class select style div
  • 在我的重写和规则 .htaccess 文件上强制使用 HTTPS

    我想在我的网站上强制使用 https 但它与我的 htaccess 的当前规则兼容 这是我现在的 htaccess 文件 RewriteEngine on RewriteCond REQUEST FILENAME f RewriteRule
  • 如何在两个 PyQt5 MainWindow 小部件之间切换

    我正在编写一个程序 它有两个不同的部分 让我们称它们为 sub1 和 sub2 当我最初运行程序时 会显示 sub1 并且我在后台加载 sub2 但不显示它 我在 sub1 中有一个菜单操作 允许您切换到 sub2 在 sub2 中有一个菜
  • 如何在 GTK3 下将文本域绑定到本地文件夹以用于 gettext

    With gettext您可以使用默认的系统范围区域设置目录 也可以使用以下命令自己指定一个bindtextdomain 当编译的 mo 翻译文件在系统的默认位置不可用时 直接从源代码运行程序时 这非常有用 在 Python 中你可以这样做
  • N 个指向函数的指针数组,返回函数指针

    这是面试时问我的 我真的很困惑 如何声明一个 N 数组 指向函数返回的指针 指向函数返回的指针 指向字符的指针 有人可以帮忙吗 Typedef 是为懦夫准备的 这里有一个简单 机械的方法来计算复杂的声明 a a a N is an N el
  • 文件的计算

    Day price1 price2 2 2 2000 10 15 3 2 2000 12 18 4 2 2000 14 19 对于每个值 价格 1 和价格 2 我想为每一列计算不同的 现在 过去 line2 line1 为了做到这一点 使用
  • numpy polyfit 通过 0

    假设我有x and y带有权重向量的向量wgt 我可以拟合三次曲线 y a x 3 b x 2 c x d 通过使用np polyfit如下 y fit np polyfit x y deg 3 w wgt 现在 假设我想做另一次拟合 但这
  • Mercurial:使用 hg pull --rebase 的问题的具体示例

    我正在努力寻找适合我们工作方式的多变工作流程 我目前倾向于对每个功能进行克隆 但这与 Subversion 的思维方式相比发生了很大的变化 我们还会遇到当前设置环境的费用问题 使用 hg pull rebase 似乎给我们提供了更多类似 S
  • pygtk关于设置按钮敏感属性的奇怪问题

    在我的一种方法中 我有以下代码 def fun self button1 set sensitive False self get time 然而 self button1只有在get time 返回后才变得不敏感 使用time sleep
  • jQuery Multiselect - 全选并带有过滤搜索

    当您使用search feature 然后使用select all它不能一起工作 它选择 所有内容 就好像搜索没有进行任何更改 但搜索本身 隐藏 元素 它应该只选择所有的项目visible 想知道其他人是否遇到过这个问题或知道解决方案 如果