Я пытаюсь добавить 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();
});
};
Большое спасибо за вашу помощь!