以编程方式将自定义数据设置为select2

时间:2015-09-25 06:58:14

标签: jquery-select2-4

如何将自定义数据设置为每个javascript的select2 v.4?我知道你可以通过插入一个选项标签设置id和text值,但是这并不包括我想要的所有其他数据,例如[{"id":"17","text":"22.09.2015 15:45:05","branchList":["20","1","3","4","5"]}]

我使用此代码来设置控件,这非常有效:

$('#image_id').select2({
  placeholder: "Search image ...",
  minimumInputLength: 0,
  allowClear: true,
  dropdownAutoWidth: true,
  theme: "bootstrap",
  ajax: {
    url: "ajax/select2_image_search.php",
    delay: 250,
    dataType: 'json',
    data: function (params) {
      return {
        keywords: params.term
      };
    },
    processResults: function (data, page) {
      return {
        results: data
      };
    }
  },
});

当我使用此代码时,我不仅可以提取ID和文本,还可以提取自定义数据,例如branchList

var bList = $('#image_id').select2("data")[0]["branchList"];

这也很有效,但是如何以编程方式为每个脚本设置附加信息,例如:这个数据[{"id":"18","text":"23.09.2015 15:45:05","branchList":["22","5","7","32","1"]}]以便我可以按照每个javascript检索其他信息吗?

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用JSON.stringify()将您的自定义数据设置为id。也许这不是好方法,但它对我有用。

所以你的代码转换为:

[ {
    "id" : JSON.stringify({
        "id" : "18",
        "branchList" : [ "22", "5", "7", "32", "1" ]
    }),
    "text" : "23.09.2015 15:45:05"
} ]

您可以稍后通过JSON.parse(selector.selectedOptions[0].value)提取数据。