0

我使用“多个选择框”(select2 示例),我想分组显示结果: 在此处输入图像描述

like (only if selected more then X options):

在此处输入图像描述

如果没有这个,带有结果的字段将太大。另外,我不想在字段结果中滚动。

有没有现成的解决方案可以做到这一点?

4

1 回答 1

0

我创建了解决方案:

$(document).ready(function() {
  $(".test").select2();
});
function select_grouping(obj) {
  var min_grouping_count = 3;
  var title = ' elements selected';
  var count = 0;
  if (obj.children('li').length > min_grouping_count) {
    if (obj.children('li').length > min_grouping_count) {
      count = obj.children('li').length - 1;
      obj.children('li').each(function(index, el) {
        if (index > 0 && index < count) {
          $(this).remove();
        }
      });
    }
    obj.children('li:eq(0)').html(count + title);
  }
}
$(".test").on("select2:select", function(obj) {
  var obj = $('#filtr_test').find('.select2-selection__rendered');
  select_grouping(obj);
});
$(".test").on("select2:unselect", function(obj) {
  var obj = $('#filtr_test').find('.select2-selection__rendered');
  select_grouping(obj);
});
.test {
  width: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />

<div id="filtr_test">
  <select class="test" multiple="multiple">
    <option value="1">one</option>
    <option value="2">two</option>
    <option value="3">three</option>
    <option value="4">four</option>
    <option value="5">five</option>
    <option value="6">six</option>
    <option value="7">seven</option>
  </select>
</div>

于 2015-07-22T11:22:20.267 回答