Нижний колонтитул добавляется несколько раз под другим раскрывающимся списком select2.Jquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Нижний колонтитул добавляется несколько раз под другим раскрывающимся списком select2.

Сообщение Anonymous »

Я использую плагин jquery select 2 для создания нескольких раскрывающихся списков с множественным выбором. В некоторых сценариях нижний колонтитул добавляется несколько раз в раскрывающееся меню. Например, если вы откроете Drodpown 1 и не выберете какой-либо параметр, откройте раскрывающийся список 2, будет добавлен еще один раскрывающийся список, и наоборот. Я пытался решить проблему, но не смог понять проблему. Кто-нибудь может помочь.
Рабочий пример кода прилагается

Код: Выделить всё

var temporarySelection = [];
var temporarySelection_level1 = [];
var temporarySelection_level2 = [];
var temporarySelection_level3 = [];
var startDateText = '';
var endDateText = '';
var selectedTextAward = '';
var selectedTextOrg = '';
var selectedTextPillar = '';
var selectedTextLeader = '';
var selectedTextTeam = '';
var selectedDateOpt = '';
let filterRequest = '';
var pillars = [];
let badgifyData = '';
let pageHomeAward_filter = 1;
var shouldClose_myselect = false;
var shouldClose_level1 = false;
var shouldClose_level2 = false;
var shouldClose_level3 = false;
// let jsonData = '';
function formatState(state) {
if (!state.id) {
return state.text;
}
var selected = ($('#mySelect').val() || []).indexOf(state.id) !== -1;
var $state = $(
'' + state.text + ''
);
return $state;
}

function formatState_Level1(state) {
if (!state.id) {
return state.text;
}
var selected = ($('#level1').val() || []).indexOf(state.id) !== -1;
var $state = $(
'' + state.text + ''
);
return $state;
}

function formatState_Level2(state) {
if (!state.id) {
return state.text;
}
var selected = ($('#level2').val() || []).indexOf(state.id) !== -1;
var $state = $(
'' + state.text + ''
);
return $state;
}

function formatState_Level3(state) {
if (!state.id) {
return state.text;
}
var selected = ($('#level3').val() || []).indexOf(state.id) !== -1;
var $state = $(
'' + state.text + ''
);
return $state;
}

function formatSelection(selected) {
return selected.text;
}

function populateLevel2() {
var level1Dropdown = document.getElementById("level1");
var level2Dropdown = document.getElementById("level2");
var selectedOrganizations = [];

// Get all selected options in level1 dropdown
for (var i = 0; i < level1Dropdown.options.length; i++) {
if (level1Dropdown.options[i].selected) {
selectedOrganizations.push(level1Dropdown.options[i].text);
}
}

// Initialize an empty array to store unique pillars
var pillars = [];

// Extract unique pillars corresponding to the selected organizations
for (var i = 0; i < jsonData.data.length; i++) {
if (selectedOrganizations.includes(jsonData.data[i].Organization)) {
var pillar = jsonData.data[i].Pillar;
if (!pillars.includes(pillar)) {
pillars.push(pillar);
}
}
}

// Clear the existing options in level2 dropdown
level2Dropdown.innerHTML = '';

// Populate the level2 dropdown with options
for (var j = 0; j < pillars.length; j++) {
var option = document.createElement("option");
option.text = pillars[j];
level2Dropdown.add(option);
}
}

function populateLevel3() {
var level1Dropdown = document.getElementById("level1");
var level2Dropdown = document.getElementById("level2");
var level3Dropdown = document.getElementById("level3");
var selectedOrganizations = [];
var selectedPillars = [];

// Get all selected options in level1 dropdown
for (var i = 0; i < level1Dropdown.options.length; i++) {
if (level1Dropdown.options[i].selected) {
selectedOrganizations.push(level1Dropdown.options[i].text);
}
}

// Get all selected options in level2 dropdown
for (var i = 0; i < level2Dropdown.options.length;  i++) {
if (level2Dropdown.options[i].selected) {
selectedPillars.push(level2Dropdown.options[i].text);
}
}

// Initialize an empty array to store unique Cost Center Leaders
var costCenterLeaders = [];

// Extract unique Cost Center Leaders corresponding to the selected combination of organization and pillar
for (var i = 0; i < jsonData.data.length; i++) {
if (selectedOrganizations.includes(jsonData.data[i].Organization)) {
if (selectedPillars.length === 0 || selectedPillars.includes(jsonData.data[i].Pillar)) {
var costCenterLeader = jsonData.data[i]["Cost Center Leader"];
if (!costCenterLeaders.includes(costCenterLeader)) {
costCenterLeaders.push(costCenterLeader);
}
}
}
}

// Clear the existing options in level3 dropdown
level3Dropdown.innerHTML = '';

// Populate the level3 dropdown with options
for (var j = 0; j < costCenterLeaders.length; j++) {
var option = document.createElement("option");
option.text = costCenterLeaders[j];
level3Dropdown.add(option);
}
}

$(document).ready(function() {

//get the csv for dropdown
getDropData();
const select2Input = document.querySelector('.select2-container .select2-search input[type="search"]');
if (select2Input) {
select2Input.style.caretColor = 'transparent'; // Set caret color to transparent
}
//myselect ---------------------------------------------------------
$('#mySelect').select2({
placeholder: "Select",
templateResult: formatState,
templateSelection: formatSelection,
closeOnSelect: false,
minimumResultsForSearch: -1,
allowClear: false
});

$('#mySelect').on('select2:open', function(e) {
if (!$('.apply-button').length) {
$('.select2-dropdown').append(
'' +
'Reset' +
'Cancel' +
'Apply'
);
}

$('.apply-button').off('click').on('click', function() {
shouldClose_myselect = true;
$('#mySelect').select2('close');
selectedTextAward = $('#mySelect').select2('data')
.map(option => option.text.replace(/\s+/g, '_').toUpperCase())
.join(', ');
console.log("Applying selection: award ", selectedTextAward);

getFilterDataAward();

});

$('.clear-button').off('click').on('click', function(e) {
shouldClose_myselect = true;
temporarySelection = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#mySelect').val(null).trigger('change');
$('#mySelect').select2('close');
selectedTextAward = ''
filterRequest.awardTypeList = null;
getFilterDataAward();

});
$('.cancel-button').off('click').on('click', function(e) {
shouldClose_myselect = true;
temporarySelection = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#mySelect').val(null).trigger('change');
$('#mySelect').select2('close');
selectedTextAward = ''
filterRequest.awardTypeList = null;
});

$('.select2-dropdown').off('click').on('click', function(e) {
shouldClose_myselect = false;
});
});

$('#mySelect').on('select2:closing', function(e) {
if (!shouldClose_myselect) {
e.preventDefault();
}
shouldClose_myselect = false;  // Reset flag
});

$('#mySelect').on('select2:select', function() {
temporarySelection = $('#mySelect').val();
console.log("tempsel", temporarySelection)
});

$('#mySelect').on('select2:unselect', function() {
temporarySelection = $('#mySelect').val();
console.log("tempUnsel", temporarySelection)
});

//levell1 -------------------------------------------
$('#level1').select2({
placeholder: "Select",
templateResult: formatState_Level1,
templateSelection: formatSelection,
closeOnSelect: false,
minimumResultsForSearch: -1,
allowClear: false
});
$('#level1').on('select2:open', function(e) {
if (!$('.apply-button-level1').length) {
$('.select2-dropdown').append(
'' +
'Reset' +
'Cancel' +
'Apply'
);
}

$('.apply-button-level1').off('click').on('click', function(e) {
shouldClose_level1 = true;
$('#level1').select2('close');
temporarySelection_level1 = $('#level1').val() || [];
selectedTextOrg = $('#level1').select2('data').map(option => option.text).join(', ');
selectedTextPillar = '';
selectedTextLeader = '';

console.log("selected-items-myselect", selectedTextOrg)
$('.select2-container:eq(2)').css('display', 'block');
getFilterDataAward();

});

$('.clear-button-level1').off('click').on('click', function(e) {
shouldClose_level1 = true;
temporarySelection_level1 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level1').val(null).trigger('change');
$('#level1').select2('close');
selectedTextOrg = '';
selectedTextPillar = '';
selectedTextLeader = '';

filterRequest.organizationList = null;
$('.select2-container:eq(3)').css('display', 'none');
$('.select2-container:eq(2)').css('display', 'none');
$('.clear-button-level2').trigger('click');
$('.clear-button-level3').trigger('click');
getFilterDataAward();

});

$('.cancel-button-level1').off('click').on('click', function(e) {
shouldClose_level1 = true;
temporarySelection_level1 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level1').val(null).trigger('change');
$('#level1').select2('close');
selectedTextOrg = '';
selectedTextPillar = '';
selectedTextLeader = '';

filterRequest.organizationList = null;
$('.select2-container:eq(3)').css('display', 'none');
$('.select2-container:eq(2)').css('display', 'none');
$('.clear-button-level2').trigger('click');
$('.clear-button-level3').trigger('click');
});

$('.select2-dropdown').off('click').on('click', function(e) {
shouldClose_level1 = false;
});

});

$('#level1').on('select2:closing', function(e) {
if (!shouldClose_level1) {
e.preventDefault();
}
shouldClose_level1 = false;  // Reset flag
});

$('#level1').on('select2:select', function() {
temporarySelection_level1 = $('#level1').val();
console.log("tempsel_l1", temporarySelection_level1)
});

$('#level1').on('select2:unselect', function() {
temporarySelection_level1 = $('#level1').val();
console.log("tempUnsel_l1", temporarySelection_level1)
if (temporarySelection_level1.length == 0) {
$('.select2-container:eq(3)').css('display', 'none');
$('.select2-container:eq(2)').css('display', 'none');
selectedTextPillar = '';
selectedTextLeader = '';
}
});

$('#level1').on('change', function() {
var selectedValue = $(this).val();
console.log("selected value", selectedValue)
populateLevel2(selectedValue);
});

///////level2------------////

$('#level2').select2({
placeholder: "Pillar",
templateResult: formatState_Level2,
templateSelection: formatSelection,
closeOnSelect: false,
minimumResultsForSearch: -1,
allowClear: false
});
$('.select2-container:eq(2)').css('display', 'none');

$('#level2').on('select2:open', function() {
if (!$('.apply-button-level2').length) {
$('.select2-dropdown').append(
'' +
'Reset' +
'Cancel' +
'Apply'
);
}

$('.apply-button-level2').off('click').on('click', function(e) {
shouldClose_level2 = true;
$('#level2').select2('close');
$('#level3').select2('close');
console.log("myyyy level2", $('#level2').val(temporarySelection_level2))
$('#level2').val(temporarySelection_level2).trigger('change');
selectedTextPillar = $('#level2').select2('data').map(option => option.text).join(', ');
selectedTextLeader = '';
$('.select2-container:eq(3)').css('display', 'block');
console.log("selected-items-myselect", selectedTextPillar)
getFilterDataAward();

});

$('.clear-button-level2').off('click').on('click', function(e) {
shouldClose_level2 = true;
temporarySelection_level2 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level2').val(null).trigger('change');
$('#level2').select2('close');
$('.select2-container:eq(3)').css('display', 'none');
$('.clear-button-level3').trigger('click');
selectedTextPillar = '';
selectedTextLeader = '';

getFilterDataAward();
});

$('.cancel-button-level2').off('click').on('click', function(e) {
$('#level2').select2('close');
shouldClose_level2 = true;
temporarySelection_level2 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level2').val(null).trigger('change');
$('#level2').select2('close');
$('.select2-container:eq(3)').css('display', 'none');
$('.clear-button-level3').trigger('click');

selectedTextPillar = '';
selectedTextLeader = '';
});

$('.select2-dropdown').off('click').on('click', function(e) {
shouldClose_level2 = false;
});
});

$('#level2').on('select2:closing', function(e) {
if (!shouldClose_level2) {
e.preventDefault();
}
shouldClose_level2 = false;  // Reset flag
});

$('#level2').on('select2:select', function() {
temporarySelection_level2 = $('#level2').val();
console.log("tempsel_l2", temporarySelection_level2)
});

$('#level2').on('select2:unselect', function() {
temporarySelection_level2 = $('#level2').val();
console.log("tempUnsel_l2", temporarySelection_level2)
if (temporarySelection_level2.length == 0) {
$('.select2-container:eq(3)').css('display', 'none');
selectedTextLeader = '';
}
});

$('#level2').on('change', function() {
var selectedValue = $(this).val();
console.log("selected value", selectedValue)
populateLevel3(selectedValue);
});

///level3--------------------

$('#level3').select2({
placeholder: "Leader",
templateResult: formatState_Level3,
templateSelection: formatSelection,
closeOnSelect: false,
minimumResultsForSearch: -1,
allowClear: false
});
$('.select2-container:eq(3)').css('display', 'none');

$('#level3').on('select2:open', function(e) {
if (!$('.apply-button-level3').length) {
$('.select2-dropdown').append(
'' +
'Reset' +
'Cancel' +
'Apply'
);
}

$('.apply-button-level3').off('click').on('click', function(e) {
shouldClose_level3 = true;
$('#level3').select2('close');
console.log("myyyy level3", $('#level3').val(temporarySelection_level3))
$('#level3').val(temporarySelection_level3).trigger('change');
selectedTextLeader = $('#level3').select2('data').map(option => option.text).join(', ');
console.log("selected-items-myselect", selectedTextLeader);

getFilterDataAward();

});

$('.clear-button-level3').off('click').on('click', function(e) {
shouldClose_level3 = true;
temporarySelection_level3 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level3').val(null).trigger('change');
$('#level3').select2('close');

selectedTextLeader = '';
getFilterDataAward();
});

$('.cancel-button-level3').off('click').on('click', function(e) {
shouldClose_level3 = true;
$('#level3').select2('close');
temporarySelection_level3 = [];
$('.select2-checkbox').prop('checked', false);
$('#selected-items').val('');
$('#level3').val(null).trigger('change');
$('#level3').select2('close');
selectedTextLeader = '';
});

$('.select2-dropdown').off('click').on('click', function(e) {
shouldClose_level3 = false;
});
});

$('#level3').on('select2:closing', function(e) {
if (!shouldClose_level3) {
e.preventDefault();
}
shouldClose_level3 = false;  // Reset flag
});

$('#level3').on('select2:select', function() {
temporarySelection_level3 = $('#level3').val();
console.log("tempsel_l3", temporarySelection_level3)
});

$('#level3').on('select2:unselect', function() {
temporarySelection_level3 = $('#level3').val();
console.log("tempUnsel_l3", temporarySelection_level3)
});

});

function getDropData() {
$('.select2-container:eq(2)').css('display', 'none');
$('.select2-container:eq(3)').css('display', 'none');

jsonData = {
"data": [{
"Organization": "Finance",
"Pillar": "Enabling IDC Functions",
"Cost Center Leader": "Rahul Kakkar"
},
{
"Organization": "Finance",
"Pillar": "Enabling IDC Functions",
"Cost Center Leader": "Rohit Sudheer Bhagade"
},
{
"Organization": " Data Ventures",
"Pillar": "wms Data Venture",
"Cost Center Leader": "Ramesh Kozhissery"
},
{
"Organization": "WMTUS CORE CUSTOMER CARE",
"Pillar": "WMTUS - Ops OH",
"Cost Center Leader": "Balasubrahmanyam Chaturvedula"
}
]
}
populateDrop();

}

function populateDrop() {
console.log("inside dropdata 1", jsonData);
var dropdown = document.getElementById("level1");
var organizations = [];

// Extract unique organization names from the JSON data
for (var i = 0; i < jsonData.data.length; i++) {
var organization = jsonData.data[i].Organization;
if (!organizations.includes(organization)) {
organizations.push(organization);
}
}

// Populate the dropdown with options
for (var j = 0; j < organizations.length;  j++) {
var option = document.createElement("option");
option.text = organizations[j];
dropdown.add(option);
}

}

function getFilterDataAward(pageNum_filter = pageHomeAward_filter) {
console.log("filter happening")
}

function clearAll() {
console.log("clear all")

}

Код: Выделить всё

.block-container-component .img-background {
background-color: #fff !important;
}

.select2-container select2-container--default select2-container--open {
top: 150px;
}

.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
padding-top: 4px;
padding-bottom: 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.select2-container--default .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
max-width: 300px;
min-height: 40px;
padding-bottom: 0px !important;
}

.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px;
min-height: 39px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #fff !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 4px;
}

.select2-container .select2-dropdown .select2-results__options .select2-results__option input {
margin-right: 10px;
}

.select2-container .select2-dropdown .select2-results__options .select2-results__option .select2-checkbox-label {
pointer-events: none;
}

.select2-container .select2-dropdown .select2-footer {
padding: 5px;
text-align: right;
border-top: 1px solid #ddd;
}

.apply-button,
.clear-button,
.cancel-button,
.apply-button-level1,
.clear-button-level1,
.cancel-button-level1,
.apply-button-level2,
.clear-button-level2,
.cancel-button-level2,
.apply-button-level3,
.clear-button-level3,
.cancel-button-level3,
#apply-btn-date,
#cancel-btn-date,
#reset-btn-date {
background-color: #0072dc;
color: white;
border-radius: 20px;
min-width: 50px;
border: none;
padding: 5px 20px;
margin-left: 5px;
font-size: 14px;
cursor: pointer;
}

#apply-btn-date {
display: none;
}

.select2-search--dropdown {
display: none;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
display: none !important;
}

.select2-container--default.select2-container--focus .select2-selection--multiple {
background-color: #fff;
}

.select2-container .select2-dropdown .select2-results__options .select2-results__option input {
margin-right: 10px;
pointer-events: auto !important;
}

.select2-container .select2-dropdown .select2-results__options .select2-results__option {
display: flex;
align-items: center;
pointer-events: none;
}

#select2-date-range-options-results>.select2-container .select2-dropdown .select2-results__options .select2-results__option {
pointer-events: auto;
}

#select2-date-range-options-results>li {
pointer-events: auto !important;
}

.dropdown-content {
display: flex;
justify-content: flex-start;
z-index: 1;
position: relative;
}

.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999;
display: none !important;
}

#level1,
#level2 #level3 {
display: block;
}

#dropdown1,
#dropdown2 {
margin: 5px;
}

#dropdown2 {
text-align: center;
}

#date-range-selector {
margin: 6px;
padding-bottom: 5px;
}

.datepicker {
float: left;
margin-right: 10px;
}

#level2 {
display: none;
}

#level3 {
display: none;
}

.select2-container .select2-search--inline {
float: left;
display: block;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__display {
cursor:  default;
padding-left: 2px;
padding-right: 5px;
font-size: 12px;
position: relative;
top: -2px;
}

.hidden-important {
display: none !important;
}

.flex-important {
display: flex !important;
}

.drop-header-team {
font-size: 14px;
text-align: left;
margin-left: 0px;
}

.drop-header-date {
font-size: 14px;
}

.select2-container--default .select2-selection--multiple {
position: relative;
caret-color: transparent !important;
}

.select2-container--default .select2-search--inline .select2-search__field {
position: absolute;
}

#filter-by {
padding: 10.0px 0.0px 0.0px 5.0px;
font-size: 15.0px;
font-weight: 700;
}

#clearall-btn {
margin: 30px 10px 10px 10px;
color: black;
text-decoration: underline;
}

.drop-header-team {
position: relative;
}

.select2-search__field {
position: absolute;
top: 3px;
}

.ui-state-active,
.ui-widget-content .ui-state-active {
border: 1px solid #c5c5c5 !important;
background: #f6f6f6 !important;
font-weight: normal;
color: #454545 !important;
}

Код: Выделить всё













Award

Bravo
Impact
Excellence
Team Award





Team











Clear all



Подробнее здесь: https://stackoverflow.com/questions/786 ... 2-dropdown
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»