JSFiddle - React, Tailwind, and code Playground
HTML
<div class="containerCombo">
<input type="text" class="resultat">
<input type="button" value="Afficher">
<ul class="containerElCombo">
<li class="elementCombo">
<input type="checkbox">
<label>Lundi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Mardi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Mercredi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Jeudi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Vendredi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Samedi</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>Dimanche</label>
</li>
</ul>
</div>
<div class="containerCombo">
<input type="text" class="resultat">
<input type="button" value="Afficher">
<ul class="containerElCombo">
<li class="elementCombo">
<input type="checkbox">
<label>01</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>02</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>03</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>04</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>05</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>06</label>
</li>
<li class="elementCombo">
<input type="checkbox">
<label>07</label>
</li>
<li class="elementCombo">
<input...
CSS
.elementCombo {
background-color: white;
width: 200px;
list-style-type:none;
}
.containerElCombo {
overflow: auto;
height:150px;
width: 250px;
margin-top : 24px;
}
JavaScript
$(function () {
//On cache les éléments dès le début
$(".containerElCombo").hide();
// sur le click des boutons afficher ...
$(':button').on('click', function () {
//on masque les autres checkboxes
$(".containerElCombo").not($(this).closest('ul')).hide()
//on affiche les checkboxes liés au bouton
$(this).next('ul').show();
})
//sur le focus de la zone de texte
$('.resultat').focus(function () {
//sur le focus de la zone texte on affiche les chk liés
$(".containerElCombo").not($(this).closest('ul')).hide()
$(this).nextAll('ul').show();
})
$(":checkbox").on('click', function () {
sel = [];
$elt = $(this).closest('.containerElCombo');
$elt.find(':checkbox:checked').each(function () {
sel.push($(this).next('label').text());
});
$elt.prevAll('.resultat').val(sel.join('; '));
});
});