如何在Select2中closeOnSelect为false时设置maximumSelectionLength?

时间:2016-02-02 22:27:59

标签: javascript jquery jquery-select2 jquery-select2-4 select2

我有以下代码:

$("#select2").select2({ closeOnSelect: false,
                        maximumSelectionLength: 5,
                        ...  // I have AJAX implemented here
                      });

当我closeOnSelect成为false并设置maximumSelectionLength时,我可以毫无问题地选择5个以上的项目。当我点击下拉菜单同时选择了超过5个项目时,我尝试添加另一个项目,我收到消息"您只能选择5个项目"。

是否有任何变通方法让这两个属性协同工作而不会发生冲突?

我目前正在使用Select2 4.0.1。

更新

我接受了pratikwebdev的建议,并添加了以下代码:

$("#select2").select2({ closeOnSelect: false,
                        maximumSelectionLength: 5,
                        ...  // I have AJAX implemented here
}).on("change", function(e) {
    if(e.target.length == 5) {
        $("#select2").select2({closeOnSelect: true,
                               maximumSelectionLength: 5,
        });
    }
});

这实际上会在我选择5个项目并且maximumSelectionLength属性正常工作后关闭下拉列表。但现在closeOnSelect是正确的,因此每次选择某些内容时,下拉列表都会关闭。

有没有办法切换closeOnSelect

1 个答案:

答案 0 :(得分:5)

这应该可以正常工作。

  $("#select2").change(function(){
      var ele = $(this);
      if(ele.val().length==5)
      {
        ele.select2('close');
      }
  });