如何从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" } ]
id
和text
用于填充选项值,我可以使用第三个值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']); });