JQuery设置引导程序选择选择器的预选值

JQuery Setting preselected values for bootstrap select picker

本文关键字:选择器 设置 引导程序 选择 JQuery      更新时间:2023-09-26

我想从下面的下拉列表中预先选择多个值。对于这个例子,我想选择"Abbey"&ampBelgrave’

<select id="dropdown" multiple>
    <option value='Belgrave'>Belgrave</option>
    <option value='Abbey'>Abbey</option>
    <option value='Castle'>Castle</option>
</select> 

我可以手动实现这一点,效果很好,如下所示:

$('#dropdown').selectpicker('val', ['Abbey', 'Belgrave']);

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

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);

以上并没有选择Abbey&Belgrave值。我能做什么。

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

$('#dropdown').selectpicker('val', JSON.parse(strWard));

编辑,固定单引号:

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));

response.user_accounts是一个数组,但它只是将第一个值显示为下拉选择,而不是数组的所有值。请建议

if (response.user_accounts) {
          $('#account').selectpicker('val', response.user_accounts.account_id);
        }