<select class="select" id="select"> <option value="all" data-size="all" class="subSelect">ВсС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹</option> <option value="big" data-size="big" class="subSelect">Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅</option> <option value="middle" data-size="middle" selected class="subSelect">Π‘Ρ€Π΅Π΄Π½ΠΈΠ΅</option> <option value="small" data-size="small" class="subSelect">МалСнькиС</option> </select> <div class='boxes'> <label class="box"> МалСнький <input type="checkbox" data-size="small" class="checkbox" value="small"> </label> <br> <label class="box"> Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ <input type="checkbox" data-size="middle" class="checkbox" value="middle"> </label><br> <label class="box"> Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ <input type="checkbox" data-size="big" class="checkbox" value="big"> </label><br> </div> 

1 answer 1

Option 1. Using jquery:

 $("#select").on("change", function(){ $("input[type='checkbox']").prop("checked", false); $("input[type='checkbox'][data-size='"+$(this).find("option:selected").data('size')+"']").prop("checked", true); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select class="select" id="select"> <option value="all" data-size="all" class="subSelect">ВсС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹</option> <option value="big" data-size="big" class="subSelect">Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅</option> <option value="middle" data-size="middle" selected class="subSelect">Π‘Ρ€Π΅Π΄Π½ΠΈΠ΅</option> <option value="small" data-size="small" class="subSelect">МалСнькиС</option> </select> <div class='boxes'> <label class="box"> МалСнький <input type="checkbox" data-size="small" class="checkbox" value="small"> </label> <br> <label class="box"> Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ <input type="checkbox" data-size="middle" class="checkbox" value="middle"> </label><br> <label class="box"> Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ <input type="checkbox" data-size="big" class="checkbox" value="big"> </label><br> </div> 

Option 2. On pure javascript:

 document.getElementById('select').addEventListener('change', function() { let chekbox = document.querySelectorAll('input[type=checkbox]'); for(let i = 0; i < chekbox.length; i++) { chekbox[i].checked = (chekbox[i].dataset.size == this.options[this.selectedIndex].dataset.size) ? true : false; } }); 
 <select class="select" id="select"> <option value="all" data-size="all" class="subSelect">ВсС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹</option> <option value="big" data-size="big" class="subSelect">Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅</option> <option value="middle" data-size="middle" selected class="subSelect">Π‘Ρ€Π΅Π΄Π½ΠΈΠ΅</option> <option value="small" data-size="small" class="subSelect">МалСнькиС</option> </select> <div class='boxes'> <label class="box"> МалСнький <input type="checkbox" data-size="small" class="checkbox" value="small"> </label> <br> <label class="box"> Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ <input type="checkbox" data-size="middle" class="checkbox" value="middle"> </label><br> <label class="box"> Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ <input type="checkbox" data-size="big" class="checkbox" value="big"> </label><br> </div> 

  • yes exactly, but only needed on pure js - Mario
  • one
    @Mario simplified the second option. If you select several identical checkboxes, it does not work - it is not clear, show sample code - Alex
  • one
    All class)) thanks - Mario
  • one
    @Mario note, now the code is updated once again - there was previously a check on value, now the check is on the data-set of the selected option as required in the question. - Alex
  • one
    Thank you, this is exactly - Mario