【问题标题】:How to select multiple options in Select2 dropdown on load?如何在加载时在 Select2 下拉列表中选择多个选项?
【发布时间】:2017-01-21 19:41:36
【问题描述】:

我正在尝试将一组选定项目加载到现有的 select2 下拉列表中,以便加载预先选择的项目,但我正在努力让我的语法正确。

给出如下json数组,即$scope.attributes

[{"AttributeId":169,"AttributeName":"Abstract"},
 {"AttributeId":170,"AttributeName":"Animal"},
 {"AttributeId":171,"AttributeName":"Beach"}]

以及创建 select2 下拉菜单的初始代码

$(".attribute-tagging").select2({
    closeOnSelect: true, placeholder: ""
});

以及加载所有可用选项的下拉列表的 html 标记。

<select class="attribute-tagging" id="edit-attributes" multiple="multiple">
    <option  value="{{attribute.AttributeId}}" ng-repeat="attribute in attributes">{{attribute.AttributeName}}</option>
</select>

这可行,但我希望已经选择了 1 个或多个这些项目,以便在页面加载时,将所有属性添加到选择列表中,然后,例如 - Animal 和 Beach 已经被选中。

理想情况下,我可以填充一个数组,当它传递到 select2 下拉列表中时,会将列表中的某些项目标记为“已选择”。

简而言之

  • 已根据属性列表创建 Select2 下拉列表
  • 从另一个数据源,将 0 个或多个“选定属性”的列表加载到此 select2 下拉列表中,作为现有选择。
  • 一个更清晰的示例,从 1 个表中的选择列表中选择世界上的 100 个国家/地区,然后选择用户 Bob 去过的所有国家/地区的数组(从另一个表中)。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery angularjs json select2


    【解决方案1】:

    试试这个代码。

      var $mySelect = $(".attribute-tagging").select2({
        closeOnSelect: true, placeholder: ""
      });
    
      $mySelect.val(["169", "171"]).trigger("change");
    

    现在选择了抽象和海滩

    【讨论】:

      【解决方案2】:

      您可以使用 id

      选择多个
       $('#edit-attributes').val(["169", "171"]);
      
      $('#edit-attributes').trigger("change");
      

      最后别忘了触发 change 事件!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多