Ich verwende das Bootstrap-Select Plugin wie folgt:
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();
Jetzt möchte ich den ausgewählten Wert auf diesen Select setzen, wenn die Schaltfläche angeklickt wird... etwa so:
$('#mybutton').click(function(){
$('select[name=selValue]').val(1);
});
Aber es passiert nichts.
Wie kann ich das erreichen?
Der Wert ist korrekt ausgewählt, aber Sie sahen ihn nicht, weil das Plugin die eigentliche Auswahl ausblendet und eine Schaltfläche mit einer ungeordneten Liste anzeigt. Wenn Sie also möchten, dass der Benutzer den ausgewählten Wert auf der Auswahl sieht, können Sie etwas wie folgt tun:
//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);
Wie @blushrt anmerkt, ist eine bessere Lösung:
$('select[name=selValue]').val(1);
$('.selectpicker').selectpicker('refresh')
Um mehrere Werte auszuwählen, übergeben Sie die Werte als Array.
$('#mybutton').click(function(){
$('select[name=selValue]').val(1);
$('select[name=selValue]').change();
});
Das hat bei mir funktioniert.
Verwenden Sie dies und es wird funktionieren:
$('select[name=selValue]').selectpicker('val', 1);