Select2 onselect一个选项将选择所有其他选项

2024-03-20

我在此提供了选择 2JSFIDDLE https://jsfiddle.net/kLw8rnre/2/。我如何选择一个期权呼叫All它将选择该选择字段中除自身之外的所有选项,这意味着All选项更像是“全选”按钮。并取消选择All。将取消选择所有选项。我在下面的 jsfiddle 中提供了相同的代码:

HTML :

<select class="parent_filter_select2 pull-right" id="parent_filter_select2" multiple="multiple" name="select_project" style="width: 300px;">
<option value="all">All</option>
        <option value="Option A">Option A</option>
        <option value="Option B">Option B</option>
        <option value="Option C">Option C</option>
        <option value="Option D">Option D</option>
</select>

JavaScript:

$('#parent_filter_select2').select2({
    placeholder: 'Select'
});

非常感谢任何帮助,谢谢。

UPDATE :我发现了类似我想要的东西,但它使用复选框,所以我想知道如何在All选项而不是复选框,并且还可以选择All选项也一样,代码如下:

$("#checkbox").click(function(){
      if($("#checkbox").is(':checked') ){ //select all
        $("#parent_filter_select2").find('option').prop("selected",true);
        $("#parent_filter_select2").trigger('change');
      } else { //deselect all
        $("#parent_filter_select2").find('option').prop("selected",false);
        $("#parent_filter_select2").trigger('change');
      }
  });

Select2 github 存储库上有一个未解决的问题,请参阅:全选/全选标题 https://github.com/select2/select2/issues/195

根据“bkdotcom”用户的建议(参见comment https://github.com/select2/select2/issues/195#issuecomment-240130634)你可以定义一个selectAllAdapter并将其与 Select2(版本 4)一起使用。

检查你的小提琴更新:https://jsfiddle.net/beaver71/tjvjytp3/ https://jsfiddle.net/beaver71/tjvjytp3/

或这个片段:

/*
      Define the adapter so that it's reusable
*/         
$.fn.select2.amd.define('select2/selectAllAdapter', [
    'select2/utils',
    'select2/dropdown',
    'select2/dropdown/attachBody'
], function (Utils, Dropdown, AttachBody) {

    function SelectAll() { }
    SelectAll.prototype.render = function (decorated) {
        var self = this,
            $rendered = decorated.call(this),
            $selectAll = $(
                '<button class="btn btn-xs btn-default" type="button" style="margin-left:6px;"><i class="fa fa-check-square-o"></i> Select All</button>'
            ),
            $unselectAll = $(
                '<button class="btn btn-xs btn-default" type="button" style="margin-left:6px;"><i class="fa fa-square-o"></i> Unselect All</button>'
            ),
            $btnContainer = $('<div style="margin-top:3px;">').append($selectAll).append($unselectAll);
        if (!this.$element.prop("multiple")) {
            // this isn't a multi-select -> don't add the buttons!
            return $rendered;
        }
        $rendered.find('.select2-dropdown').prepend($btnContainer);
        $selectAll.on('click', function (e) {
            var $results = $rendered.find('.select2-results__option[aria-selected=false]');
            $results.each(function () {
                self.trigger('select', {
                    data: $(this).data('data')
                });
            });
            self.trigger('close');
        });
        $unselectAll.on('click', function (e) {
            var $results = $rendered.find('.select2-results__option[aria-selected=true]');
            $results.each(function () {
                self.trigger('unselect', {
                    data: $(this).data('data')
                });
            });
            self.trigger('close');
        });
        return $rendered;
    };

    return Utils.Decorate(
        Utils.Decorate(
            Dropdown,
            AttachBody
        ),
        SelectAll
    );

});

$('#parent_filter_select2').select2({
    placeholder: 'Select',
    dropdownAdapter: $.fn.select2.amd.require('select2/selectAllAdapter')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.full.min.js"></script>

<select class="parent_filter_select2 pull-right" id="parent_filter_select2" multiple="multiple" name="select_project" style="width: 300px;">
        <option value="Option A">Option A</option>
        <option value="Option B">Option B</option>
        <option value="Option C">Option C</option>
        <option value="Option D">Option D</option>
</select>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Select2 onselect一个选项将选择所有其他选项 的相关文章

随机推荐

  • 如果用户不在角色中,则忽略@Html.Action()

    In my View我渲染菜单 Html Action RenderMenu Admin and Html Action RenderMenu Manager 行动地点 Authorize Roles Admin public Action
  • 如何在自定义 .NET Web 控件中指定必需的属性?

    private string itemId Browsable true Description Required identifier for the Item public string ItemId get return itemId
  • 按位左移函数

    我正在尝试实现一个左旋转函数 将整数 x 左旋转 n 位 例如 rotateLeft 0x87654321 4 0x76543218 法律行动 gt 到目前为止我有这个 int rotateLeft int x int n return x
  • 使用 Ant 将外部 jar 文件包含在新的 jar 文件构建中

    我刚刚 继承 了一个 Java 项目 而不是来自 Java 背景 有时我会有点迷失 Eclipse 用于在开发过程中调试和运行应用程序 我通过 Eclipse 成功创建了一个 jar 文件 其中 包含 所有必需的外部 jar 如 Log4J
  • sqlite 删除最后一行刷新不起作用

    我的列表视图上有一个长按选项 它将删除长按的数据库条目 删除确实有效 如果我退出应用程序并返回 我会看到 无行 消息 完美的 在我的代码中 我首先调用 DBadapter 方法来删 除一行 然后 我在 dbadapter 中调用 fetch
  • 如何在 python 中录制不确定持续时间的音频并允许暂停和恢复功能?

    我正在编写一个 Python 应用程序来将音频录制为 WAV 文件 直到用户按下pause or stop 暂停音频后 用户还应该能够resume记录 此外 应用程序无法预先知道录音会持续多长时间 应用程序应避免内存不足 因为录制可能会很长
  • 获取 DER 编码的公钥

    使用 BounceCastle 我可以运行以下代码 它生成密钥对并返回 ASN 1 DER 编码格式 Generate new key var generator new RsaKeyPairGenerator generator Init
  • 如何在 Dynamics CRM 2016 中使用 ExecuteWorkflowRequest 调用带有参数的操作?

    Context 我可以使用 ExecuteWorkflowRequest 成功调用操作 其中调用的操作没有参数 var request new ExecuteWorkflowRequest EntityId myEntityId Workf
  • 使用 php://memory 包装器会导致错误

    我试图通过添加一个方法来扩展 Worx 的 PHP 邮件程序类 该方法允许我使用字符串数据而不是文件路径添加附件 我想出了这样的事情 public function addAttachmentString string name encod
  • Mac OS X - 没有菜单的应用程序?

    我想构建一个没有菜单栏 停靠栏图标或位于应用程序切换器中的应用程序 基本上 它应该像 Quicksilver 一样 我通过全局热键 例如 Safari 激活它 然后会出现一个小窗口 但 Safari 不会变得不活动 也不会显示不同的菜单栏
  • MediaPlayer getDuration 返回 -1412558917

    我完全迷失了 我发现代码非常简单 并且在文档中没有找到任何返回这么大负数的原因 代码如下 private int getDuration String audioPath throws Exception mediaPlayer new M
  • iOS 6.0.1 模拟器

    我已经安装了XCode 4 5 2 它只有 6 0 的模拟器 我想要 iOS 6 0 1 iPad 模拟器 有人可以帮助我如何获得 6 0 1 版本吗 我检查了 mac 应用商店的更新 它是最新的 XCode 如果我安装 Xcode 4 6
  • 如何覆盖 Angular 中的现有组件?

    我正在尝试覆盖角度中的现有组件 我原来的组件是 Component selector app orginal templateUrl orginal component html styleUrls orginal component cs
  • 使用 StructureMap 创建插件扫描器

    我正在尝试为支付网关实现编写一个 StructureMap 插件扫描仪 我在外部库中创建了 IPaymentGateway 接口 我创建了 IPaymentGateway 的多个实现 并将这些 dll 放在我的 C Extensions 文
  • 比较 SSIS 包代码...有什么建议吗?

    我已经遇到了不可避免的情况 我必须对 SSIS 包的两个版本中的代码进行比较 除了我现在要打开 2 个 VS 实例并逐个框 逐个变量地检查它之外 您还成功使用过什么 注意 就我而言 比较重要的事情是 变量 执行SQL任务中的代码 任务顺序
  • 如何将参数从 xaml 标记文件传递到 UserControl 构造函数?

    我有一个 StepsWnd 窗口 其中使用了两次 UserControl StepProp 并在单独的文件中声明
  • Spring boot - 启动时禁用 Liquibase

    我希望有液体碱配置了我的春季启动应用程序 所以我添加了依赖项pom xml并将路径设置为master xml in application properties 这工作正常并且春季启动 runs 液体碱在启动时 问题是现在我想跑液体碱手动
  • Android Studio:导航 xml 编辑和设计视图出现问题

    我们一直在项目中使用导航组件 但偶然发现了一个似乎是我们的项目和 JetBrains Android 插件特有的问题 我无法确定它开始发生的确切时间点 但我在 AS 3 2 发布后注意到了它 该项目构建得很好 但是在编辑导航 XML 时 自
  • 自动装配依赖项注入失败;

    我正在开发一个小型 Java EE Hibernate Spring 应用程序 出现错误 Error creating bean with name articleControleur Injection of autowired depe
  • Select2 onselect一个选项将选择所有其他选项

    我在此提供了选择 2JSFIDDLE https jsfiddle net kLw8rnre 2 我如何选择一个期权呼叫All它将选择该选择字段中除自身之外的所有选项 这意味着All选项更像是 全选 按钮 并取消选择All 将取消选择所有选