【发布时间】:2014-08-16 21:56:01
【问题描述】:
Select2 (v3.5.1) 具有拖放功能,但仅限于“输入”字段。我需要一个值/文本组合,所以只有一个选择框对我来说是正确的选择。
我在这里找到了我的问题的(部分)解决方案:http://joevanderjagt.com/better-multiple-select-with-sorting/
但是,它有一个错误。它在排序标签上工作正常,但如果用户只添加标签而不排序,它就不行了。 我创建了一个 jsfiddle:http://jsfiddle.net/s8v3su36/
<select id="test" size="1" multiple="multiple" style="width:400px">
<option value="a">AAA</option>
<option value="b">BBB</option>
<option value="c">CCC</option>
</select>
(function($){
$.fn.extend({
select2_sortable: function(){
var select = $(this);
$(select).select2();
var ul = $(select).prev('.select2-container').first('ul');
ul.sortable({
placeholder : 'ui-state-highlight',
forcePlaceholderSize: true,
items : 'li:not(.select2-search-field)',
tolerance : 'pointer',
stop: function() {
$($(ul).find('.select2-search-choice').get().reverse()).each(function() {
var id = $(this).data('select2Data').id;
var option = select.find('option[value="' + id + '"]')[0];
$(select).prepend(option);
});
}
});
}
});
$('#test').select2_sortable();
}(jQuery));
添加第一个“CCC”,现在添加“BBB”,然后按调试按钮。你会看到订单 "AAA, BBB, CCC" 但必须是 "CCC,BBB,AAA"
现在使用拖放移动“BBB”作为第一个条目。再次点击调试按钮,看到正确的顺序“BBB,CCC,AAA”。
有人可以帮忙吗?我希望添加一个条目也在选择中对选项进行排序。 :)
可能的解决方案:http://jsfiddle.net/s8v3su36/4/
【问题讨论】:
标签: jquery-select2