'How to add option values on silviomoreto's Bootstrap-Select
I used silviomoreto's bootstrap-select but I'm having problems. I have 2 Dropdowns (Select) a Region dropdown and Cities. Now, I have a jquery onchange function, the function will change the values in the cities dropdown depending on the region selected. Here's my code:
<select id="region" class="selectpicker"></select>
<select id="cities" class="selectpicker"></select>
$("#region").on('change', function () {
$("#cities").html('<option>city1</option><option>city2</option>');
});
The problem is I think the compatibility? When I removed the class="selectpicker" it works fine, but I can't remove it because I used it for my dropdown ui. I checked the documentation in here https://developer.snapappointments.com/bootstrap-select/ but I can't find relevant answer to my question. Thanks!
Solution 1:[1]
I’ve created an example of creating a dynamic drop-down menu with grouped options by taking the data from an array. I hope it helps
// Example data Array list
namespace_list = [
['test1-c1', 'test2-c1', 'test3-c1', 'test4-c1', 'test5-c1', 'test6-c1'],
['test1-c2', 'test2-c2', 'test3-c2', 'test4-c2', 'test5-c2', 'test6-c2']
]
$('#pod_dropdown').selectpicker();
// Delete old options of the dropdown
$('#pod_dropdown').find('option').remove();
// Selecting selectpicker dropdown
select = document.getElementById('pod_dropdown');
for (let namespace of namespace_list) {
// Generating group name
namespace_name = namespace[0].slice(6, 8)+'-title'
// Creating the optiongroup
var optgroup = document.createElement('optgroup');
optgroup.id = namespace_name;
optgroup.label = namespace_name
// Appending optiongroup to the dropdown
select.appendChild(optgroup);
// Selecting the optiongroup
optiongroup = document.getElementById(namespace_name);
for (let pod of namespace) {
// Creating the options of the optiongroup
var opt = document.createElement('option');
opt.value = pod;
opt.innerHTML = pod;
// Appending the option to the optiongroup
optiongroup.appendChild(opt);
}
}
// Refresh the dropdwon menu
$('#pod_dropdown').selectpicker("refresh");
// Getting the value after selecting it in the UI and unselect the dropdown
function filterpod() {
let pod = $('#pod_dropdown').val().toString();
console.log(pod)
}
<!-- jquery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- bootstrap -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- multi select dropdown -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/css/bootstrap-select.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/js/bootstrap-select.min.js"></script>
<!-- Creatting the dropdown -->
<select id="pod_dropdown" class="selectpicker" data-style="btn btn-primary btn-sm" multiple data-live-search="true" data-width="auto"></select>
<!-- Calling the function filterpod when hide dropdown after select option -->
<script type="text/javascript">
$('#pod_dropdown').on('hide.bs.select', function(e) {filterpod();});
</script>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Alex Verdaguer |
