我已经阅读过this,this,this并根据文档the most important here,但它们都不适用于我.
我正在尝试使用AJAX select2.我正在尝试制作一个通用的“选择”项目.
因此,对于具有data-select2-json属性的所有元素,我将select2应用于data-select2-json值中的ajax URL.
@H_301_8@$('[data-select2-json!=""][data-select2-json]').each(function() {
var url = $(this).attr('data-select2-json');
var pg_size = $(this).attr('data-select2-page-size') | 30;
$(this).select2({
language: language_code,tokenSeparators: [',',' '],ajax: {
url: url,dataType: 'json',delay: 300,data: function (params) {
return {
q: params.term,// -> q=[search term]
page: params.page // -> page=[no page]
};
},processResults: function (data,params) {
params.page = params.page || 1;
console.log(data.items);
return {
results: data.items,pagination: {
more: (params.page * pg_size) < data.total
}
};
},cache: true
},// let our custom formatter work
escapeMarkup: function (markup) { return markup; },minimumInputLength: 1,templateResult: formatRepo,templateSelection: formatRepoSelection
});
});
它运作良好!
服务器发送的JSON总是这样格式化:
@H_301_8@{"items":
[{"item": "Fran\u00e7ais","id": 1},{"item": "Finlandais","id": 5},{"item": "Chinois simplifi\u00e9","id": 15}
],"total": 3}
它非常接近您can find in the documentation的AJAX示例.我的问题是AJAX initiatilize:我想要在HTML中添加值:
@H_301_8@
最佳答案
我使用Select2 Examples页面上提供的示例代码创建了一个working example on jsfiddle.我只需要更改他们的示例选择标记以接受与您相同的多个标记:
@H_301_8@