Вам необходимо создать элемент option
для каждого флажка, а затем добавить его к выбору #config
. Вы можете использовать map()
для наиболее эффективного создания параметров:
$(document).ready(function() {
let $config = $('#config');
let $checkboxes = $(':checkbox');
$checkboxes.on('change', function() {
$('option.dynamic').remove();
let options = $checkboxes.filter(':checked').map((i, el) => `<option class="dynamic" value="${el.value}">${el.value}</option>`).get();
$config.append(options);
}).trigger('change');
});
label { display: block; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type="checkbox" name="valve_type_array[]" value="Test1"><span>Test1</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test2" checked><span>Test2</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test3"><span>Test3</span></label>
<label><input type="checkbox" name="valve_type_array[]" value="Test4"><span>Test4</span></label>
<select class="form-control hide" id="config" name="config">
<option value="">Please select</option>
</select>
Что касается программного открытия списка опций select
, к сожалению, это невозможно .
Раньше был обходной путь только для Chrome, но он больше не работает с Chrome v53. Подробнее об этом здесь .