выбрал те же опции на клонировать выберите - PullRequest
0 голосов
/ 24 января 2019

Добрый день, ребята. У меня был вопрос о клонировании моего выбора, который использует плагин select2. Основная проблема - я не могу использовать опцию, которая была выбрана в предыдущем блоке.

Я попытался найти выбранный элемент и удалить его атрибуты, такие как aria-selected и selected

newEntry.find('option:selected').removeAttr('selected').attr('[aria-selected=false]')

Но это не работает.

$(document).ready(function() {
    $(".entryDet").children("select").select2({});
    $(".btn-add").click(function () {
       $(".entryDet")
           .children("select")
           // call destroy to revert the changes made by Select2
           .select2("destroy")
            .removeAttr('data-live-search')
            .removeAttr('data-select2-id')
            .removeAttr('aria-hidden')
            .removeAttr('tabindex');
    });
    $(document).on('click', '.btn-add', function (e) {
        e.preventDefault();

        var Count = $('.entryDet').size();

        var controlForm = $('.controls fieldset:first-child'),
            currentEntry = $(this).parents('.entryDet:first'),
            newEntry = $(currentEntry.clone(true)).appendTo(controlForm);

        var SplitVar = (newEntry.find('select').attr('name')).split('-');
        Count > SplitVar[1] ? newEntry.find('select').attr('name','Operations-'+ ++Count) : newEntry.find('select').attr('name','Operations-'+ ++SplitVar[1]);

        newEntry.find('option:selected').removeAttr('selected').attr('[aria-selected=false]');

        newEntry.find('input').val('');
        controlForm.find('.entryDet:not(:last) .btn-add')
            .removeClass('btn-add').addClass('btn-remove')
            .html('<div id="rectangle"></div>');

        $(".entryDet").children("select").each(function () {
            $(this).select2({});
        });

    }).on('click', '.btn-remove', function (e) {

        $(this).parents('.entryDet:first').remove();
        e.preventDefault();
        $(".entryDet").children("select").each(function () {
            $(this).select2({});
        });
        return false;
    });
});

Результат, который мне нужно принять, - это возможность выбора всех опций на базе и клонирования. Это выглядит просто, но я не могу найти решение. Надеюсь, что кто-то может предложить решение этой проблемы.

UPD: неужели никто не знает, как решить эту проблему?

...