Search code examples
jquerytwitter-bootstrapbootstrap-select

How to set selected value on select using selectpicker plugin from bootstrap


I'm using the Bootstrap-Select plugin like this:

HTML:

<select name="selValue" class="selectpicker">
   <option value="1">Val 1</option>
   <option value="2">Val 2</option>
   <option value="3">Val 3</option>
   <option value="4">Val 4</option>
</select>

Javascript:

$('select[name=selValue]').selectpicker();

Now I want to set the value selected to this select when button clicked... something like this:

$('#mybutton').click(function(){
   $('select[name=selValue]').val(1);
});

But nothing happens.

How can I achieve this?


Solution

  • The value is correctly selected, but you didn't see it because the plugin hide the real select and show a button with an unordered list, so, if you want that the user see the selected value on the select you can do something like this:

    //Get the text using the value of select
    var text = $("select[name=selValue] option[value='1']").text();
    //We need to show the text inside the span that the plugin show
    $('.bootstrap-select .filter-option').text(text);
    //Check the selected attribute for the real select
    $('select[name=selValue]').val(1);
    

    Edit:

    Like @blushrt points out, a better solution is:

    $('select[name=selValue]').val(1);
    $('.selectpicker').selectpicker('refresh')
    

    Edit 2:

    To select multiple values, pass the values as an array.