我設法使其與下面的代碼工作,(我收集它從別的地方&不再可以從那裏記得)
var $select2 = $('#currency-converter-currencies').select2({
templateSelection: template,
width: '100%'
}).val({!! $setting->convert_currencies !!}).trigger('change');
// cache order of initial values
var defaults = $select2.select2('data');
defaults.forEach(function (obj) {
var order = $select2.data('preserved-order') || [];
order[order.length] = obj.text;
$select2.data('preserved-order', order);
});
function select2_renderSelections($select2) {
var order = $select2.data('preserved-order') || [];
var $container = $select2.next('.select2-container');
var $tags = $container.find('li.select2-selection__choice');
var $input = $tags.last().next();
// apply tag order
order.forEach(function (val) {
var $el = $tags.filter(function (i, tag) {
return $(tag).data('data').id === val;
});
$input.before($el);
});
}
function selectionHandler(e) {
var $select2 = $(this);
var val = e.params.data.id;
var order = $select2.data('preserved-order') || [];
switch (e.type) {
case 'select2:select':
order[order.length] = val;
break;
case 'select2:unselect':
var found_index = order.indexOf(val);
if (found_index >= 0) order.splice(found_index, 1);
break;
}
$select2.data('preserved-order', order); // store it for later
select2_renderSelections($select2);
}
$select2.on('select2:select select2:unselect', selectionHandler);
/**
* Put select option's value instead on text in select box
* @param data
* @param container
*/
function template(data, container) {
return data.id;
}
在這裏,我們用我們的過濾值替換原來的選擇二值「模板「功能。
這不應該是永久性修復,因爲這種編程方式,將其視爲臨時修復。
希望這將幫助其他人在未來
來源
2017-11-12 17:20:20
APu
它也除去被選擇的元素,這不是我希望的方式,這就是爲什麼我不認爲。 – APu