Reputation: 5341
Ref: https://silviomoreto.github.io/bootstrap-select/options/
Im using the above on my page to allow my user to select multiple values. However I want to simply display the Text of the selected value, but it is either not possible or i'm doing it all wrong? I get all the values and want the "selected" value As I want to display the result to the user later on...
<div class="form-group"><label class="col-lg-2 control-label">Service(s):</label>
<div class="col-lg-9">
<select class="selectpicker" multiple title="Select from the following..." data-width="100%" id="serviceList">
</select></div></div>
<script>
var services = [{"value":"3e197221-e48b-44b8-a2aa-2054638f3bbc","label":"Service1","price":30.000000},{"value":"cd909812-ff6e-484b-96e3-c344ba20e140","label":"Service2","price":10.000000}];
$('.selectpicker').on('changed.bs.select', function (e, clickedIndex, newValue, oldValue) {
var v = $(".selectpicker option:selected").val();
var result =[];
for (var i = 0; i < services.length; i++){
// look for the entry with a matching value
if (services[i].value === v) {
result.push(services[i].label);
console.log(services[i].label);
}
}
for (i = 0; i < result; i++) {
console.log(result[i]);
}
});
</script>
Upvotes: 0
Views: 4777
Reputation: 18767
You want to "pluck" all the labels from the array of selected options.
$('.selectpicker').on('changed.bs.select', function () {
selectedServices = $.map($(this).find("option:selected"), function(o) { return o["label"]; });
}
Upvotes: 3
Reputation: 5341
This worked, seems long winded.
var selectedServices =[];
$('.selectpicker').on('changed.bs.select', function (e, clickedIndex, newValue, oldValue) {
for (var key in services) {
if (key == clickedIndex) {
console.log(key + ' is ' + services[key]);
selectedServices.push(services[key].label);
console.log(services[key].label);
}
}
Upvotes: 0