【问题标题】:JQuery Setting preselected values for bootstrap select pickerJQuery为引导选择选择器设置预选值
【发布时间】:2018-01-30 02:30:19
【问题描述】:

我想从下面的下拉选择中预先选择多个值。对于这个例子,我想选择“Abbey”和“Belgrave”

<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 的值。我能做什么。

【问题讨论】:

  • 由于您尝试设置 2 个值,我认为它是一个多选。您应该将multiple 添加到&lt;select&gt;
  • Ninsly 我在选择中已经有多个:- 上面更新了
  • 哦,好的。只是做$('#dropdown').selectpicker('val', wards);有什么问题吗
  • 您使用的初始字符串是什么?为什么,在将其拆分为数组后,您要将其转换回字符串?
  • David 初始 str 是根据用户输入构建的,并且值周围没有“撇号”,因此我正在遍历 str 并使用 ' ' 对其进行格式化。而且直接使用也不行。

标签: javascript jquery twitter-bootstrap bootstrap-select


【解决方案1】:

您可以使用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));

【讨论】:

  • 试过这个但没有用:错误语法错误:JSON.parse:JSON 数据的第 1 行第 2 列出现意外字符
  • @user2906420 这是由于字符串中的单引号引起的。我会编辑我的答案来解决这个问题。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2013-06-22
    • 2018-08-29
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2019-10-21
    相关资源
    最近更新 更多