如何从Select2中的数据源设置data- *?

我使用Select2如下:

$('select#fields').select2({ placeholder: 'Select a field', data: data.fields }); 

data.fields是一个像这样的JSON:

 "fields": [ { "id": "companies_id", "text": "companies_id", "data-type": "int" }, { "id": "parent_companies_id", "text": "parent_companies_id", "data-type": "int" }, { "id": "client_of_companies_id", "text": "client_of_companies_id", "data-type": "int" }, { "id": "asset_locations_id", "text": "asset_locations_id", "data-type": "int" }, { "id": "companies_name", "text": "companies_name", "data-type": "varchar" }, { "id": "companies_number", "text": "companies_number", "data-type": "varchar" } ] 

idtext用于填充选项值,我可以使用第三个值data-type并将其设置为的属性吗? 如果是这样的话? 能不能给我一个例子吗?

实际上 – 默认情况下,select2将所有属性保存在它创建的元素的data('data')变量中,并且您始终可以使用$(来访问这些值.data $(但请记住,对于data-type="value".data('type') 。 您需要使用属性的完整名称。

以下是如何在select事件中获取data-type值的示例:

 var $example = $("#s1").select2({ data: [ { "id": "companies_id", "text": "companies_id", "data-type": "int", "data-extra": '1' }, { "id": "parent_companies_id", "text": "parent_companies_id", "data-type": "int", "data-extra": '2' }, { "id": "client_of_companies_id", "text": "client_of_companies_id", "data-type": "int", "data-extra": '3' }, { "id": "asset_locations_id", "text": "asset_locations_id", "data-type": "int", "data-extra": '4' }, { "id": "companies_name", "text": "companies_name", "data-type": "varchar", "data-extra": '5' }, { "id": "companies_number", "text": "companies_number", "data-type": "varchar", "data-extra": '6' } ], }).on('select2:select', function(e) { console.log(e.params.data['data-type'], e.params.data['data-extra']); });