JQuery设置bootstrap选择选择器的预选值

use*_*420 1 javascript jquery twitter-bootstrap bootstrap-select

我想从下面的下拉列表中选择多个值.在这个例子中,我想选择'Abbey'和'Belgrave'

<select id="dropdown" multiple>
    <option value='Belgrave'>Belgrave</option>
    <option value='Abbey'>Abbey</option>
    <option value='Castle'>Castle</option>
</select> 
Run Code Online (Sandbox Code Playgroud)

我可以手动实现这个,这样工作正常:

$('#dropdown').selectpicker('val', ['Abbey', 'Belgrave']);
Run Code Online (Sandbox Code Playgroud)

问题是通过在字符串中传递数组它不起作用:

var wards = dsFilterOptions.Wards.split(",");
var strWard = "[";
for (i = 0; i < wards.length; i++) {
    strWard += "'" + wards[i] + "',";
}
strWard = strWard.slice(0, -1); //remove last comma
strWard += "]";
$('#dropdown').selectpicker('val', strWard);
Run Code Online (Sandbox Code Playgroud)

以上并没有选择Abbey&Belgrave的价值观.我能做什么.

kla*_*ske 6

您可以使用JSON.parse将字符串还原为数组,因此:

$('#dropdown').selectpicker('val', JSON.parse(strWard));
Run Code Online (Sandbox Code Playgroud)

编辑,单引号修复:

var wards = dsFilterOptions.Wards.split(",");
var strWard = '[';
for (i = 0; i < wards.length; i++) {
    strWard += '"' + wards[i] + '",';
}
strWard = strWard.slice(0, -1); //remove last comma
strWard += ']';
$('#dropdown').selectpicker('val', JSON.parse(strWard));
Run Code Online (Sandbox Code Playgroud)