Пока что я делал, когда пользователь нажимал на ярлык, флажок этого ярлыка был установлен, а значение ярлыка добавлялось в другой элемент div вместе со значком закрытия. Когда мы нажимаем значок закрытия или снимаем флажок, флажок будет отключен. Но когда у нас будет одно и то же имя ярлыка для двух флажков, при щелчке на значке закрытия или снятии флажка для одного из них оба флажка не будут отмечены, поскольку один и тот же ярлык будет активен. Надеюсь, вы получаете то, что я пытаюсь сказать. Вот фрагмент кода для вас, чтобы быть более ясным. Любая помощь будет оценена.
var passed_value, data, input_value, checkbox_items;
$('.form-check-label').click(function(e) {
data = $(this).text().trim();
input_value = data.split(' ').join('_');
$(this).prev('input').attr({
'value': input_value,
'id': input_value
});
e.stopImmediatePropagation();
$(this).toggleClass('active');
if ($(this).hasClass('active')) {
passed_value = $(`<div><span>` + data + `</span><i class="fas fa-times"></i></div>`).prop('title', data);
$('.result-text1').append(passed_value).css('cursor', 'default');
} else {
$('.result-text1 span:contains(' + data + ')').parent().remove();
}
})
var active_text;
$('body').on('click', '.result-text1 i', function(e) {
e.stopImmediatePropagation();
$(this).parent('div').remove();
var text_div = $(this).prev().text();
// console.log(text_div);
active_text = $('.form-check-label.active:contains(' + text_div + ')');
if ($(active_text)) {
$(active_text).removeClass('active').prev().prop('checked', false);
}
})
.result-text1 div {
display: grid;
grid-template-columns: min-content min-content;
grid-column-gap: 5px;
}
.result-text1 div span {
color: #1e699b;
padding: 7px;
font-size: 12px;
border: 1px solid #1e699b;
border-radius: 7px;
// margin-right: 7px;
text-overflow: ellipsis;
width: 110px;
white-space: nowrap;
overflow: hidden;
display: inline-block;
text-align: center;
}
i {
height: 17px;
width: 17px;
background: #eaeaea;
border-radius: 50%;
color: #2d84d7;
display: grid;
justify-content: center;
align-items: center;
font-size: 11px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/cd3112b74c.js" crossorigin="anonymous"></script>
<div class="card">
<article class="card-group-item">
<header class="card-header">
<h6 class="title">pickup time </h6>
</header>
<div class="filter-content">
<div class="card-body">
<form>
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
morning
</span>
</label>
<!-- form-check.// -->
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
afternoon
</span>
</label>
<!-- form-check.// -->
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
evening
</span>
</label>
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
night
</span>
</label>
<!-- form-check.// -->
</form>
</div>
<!-- card-body.// -->
</div>
</article>
<!-- card-group-item.// -->
<article class="card-group-item">
<header class="card-header">
<h6 class="title">drop time </h6>
</header>
<div class="filter-content">
<div class="card-body">
<form>
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
morning
</span>
</label>
<!-- form-check.// -->
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
afternoon </span>
</label>
<!-- form-check.// -->
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
evening
</span>
</label>
<label class="form-check">
<input class="form-check-input" type="checkbox" value="">
<span class="form-check-label">
night
</span>
</label>
<!-- form-check.// -->
</form>
</div>
<!-- card-body.// -->
</div>
</article>
<!-- card-group-item.// -->
</div>
<!-- card.// -->
<div class="result-text1"></div>