У меня есть две функции для добавления параметров в множественный выбор jquery, однако обе они работают ненормально.Во-первых, я не могу отменить выбор.для второго все опции пропали, если я нажму одну.
Инициализация
$("#addrBookNotiMsgRcpt").multiselect({
selectedList: 1,
selectedText: "# selected",
noneSelectedText: "Recipient",
close: function() {
if ($("#addrBookNotiMsgRcpt > option").length === 0) {
$("#abMsgActAll").notify(
"Select recipient, maximum " + maxRecipient, "warn", {
position: "top right"
}
);
}
}
}).multiselectfilter();
Проблема: Я не могу отменить выборопции из множественного выбора, если я добавлю опции следующим образом
function updateRecipient() {
let selectedRows = $('input[type="checkbox"]:checked:not(#abMsgActAll)', $('#addressBookMsgTable').DataTable().cells().nodes);
$('#addrBookNotiMsgRcpt').empty().multiselect('refresh');
let uniqueOption = [];
let uniqueEmail = [];
$.each(selectedRows, function() {
let option = $("<option></option>");
let data = $(this).data();
if (!jQuery.isEmptyObject(data)) {
option.html(data.username);
option.attr("data-userid", data.userid);
option.attr("data-firstname", data.firstname);
option.attr("data-lastname", data.lastname);
option.attr('data-email', data.email);
option.attr('data-contactno', data.contactno);
option.attr('selected', 'selected');
option.val(data.userid);
if (jQuery.inArray(data.email, uniqueEmail) === -1) {
uniqueEmail.push(data.email);
uniqueOption.push(option);
}
}
});
$.each(uniqueOption, function() {
$("#addrBookNotiMsgRcpt").append($(this));
});
$('#addrBookNotiMsgRcpt').multiselect('refresh');
}
Все опции исчезнут, если я просто нажму одну
$("#addrBookRcptSrchBtn").click(function() {
$.post("retrieveWorkers", $("#addrBookRcptSrchForm").serialize()).done(function(response) {
if (response.workerList) {
$('#addrBookNotiMsgRcpt').empty().multiselect('refresh');
$.each(response.workerList, function(i, worker) {
let option = $("<option></option>");
option.val(worker.usrerId).text(worker.fullName);
$(option).data("userid", worker.usrerId);
$(option).data("firstname", worker.firstName);
$(option).data("lastname", worker.lastName);
$(option).data("email", worker.emailId);
$(option).data("contactno", worker.phoneNo);
$("#addrBookNotiMsgRcpt").append(option)
});
$('#addrBookNotiMsgRcpt').multiselect('refresh');
}
});
});