Выбор нескольких элементов отменяется, если выбрано два или более - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь добавить bootstrap множественный выбор. Я уже написал код с предыдущим разработчиком, который создал раскрывающееся меню без возможности выбора нескольких. Каждый выбор в раскрывающемся меню делается для выбора желаемого списка рассылки. После того, как вы выберете список рассылки, будут выбраны все электронные письма из выбранного списка рассылки. Я пытаюсь выбрать 2 или более списков рассылки вместе. Когда я выбираю одно, это нормально, но если я выбираю два или более, он снимает выделение со всех писем. Извините, я новичок, и код, написанный предыдущим программистом, для меня довольно сложен.

это форма, которую я изменил на множественный выбор:

    <label for="" class="form-label">Select Mailing List</label>
    <select name="mailinglist" id="mailinglist" class="selectpicker" multiple>
        <option value="Null"></option>
        <option value="0">All Subscribers</option>

        @if($mailinglists->count() > 0)
            @foreach($mailinglists as $list)
                <option @if($selectedList == $list->id) selected @endif value="{{ $list->id }}">{{ $list->name }}</option>

            @endforeach
        @endif
    </select>
@endif
</div> 

И я думаю, что здесь должно быть что-то изменилось, но я не уверен, как это сделать:

var checkSubscribers = function () {
    var mlistSelected = $("#mailinglist").val();
    var cls = 'mlist-' + mlistSelected; 

    $(".select-subscriber").each(function () {
        var subscriberId = $(this).val();
        var index = subscribers.indexOf(subscriberId);

        if(index > -1) {
            $(this).prop("checked", "checked");
        } else {
            $(this).prop("checked", "");
        }
    });
};

var selectSubscribers = function () {
    var listid = $("#mailinglist").val();
    subscribers = [];

    if(mailinglistSubs[listid]) {
        for(var key in mailinglistSubs[listid]) {
            var sid = mailinglistSubs[listid][key];
            if(subscribers.indexOf(sid) == -1) {
                subscribers.push(sid);
            }
        }
    } else {
        if(listid == 0) {
            for(var key in subscribersAll) {
                var sid = subscribersAll[key];
                if(subscribers.indexOf(sid) == -1) {
                    subscribers.push(sid);
                }
            }
        }
    }
};

var bindSelectAllSubscribers = function () {
    $("#select-all").on("click", function (e) {
        subscribers = [];
        if($(this).is(":checked")) {
            $(".select-subscriber").prop("checked", "checked");

            for(var key in subscribersAll) {
                var sid = subscribersAll[key];
                subscribers.push(sid);
            }
        } else {
            $(".select-subscriber").prop("checked", "");
        }
        checkSubscribers();
    });
};

Большое спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...