我有一个已经使用select2 v3.3.1并由jQuery 1.8.2提供支持的旧Web应用程序。我实现了select2分页,但是得到了“错误:当Select2附加到元素时,不允许选项'ajax'用于Select2。”在控制台中。我将select2 v3.3.1替换为select2 v4.0.11,数据从PHP脚本返回,但未显示在select元素上。
我的问题是:是否由于jQuery版本而没有显示选择选项,如果是,我如何使用noConflict来解决它,或者可以使用select2的多个版本对其进行更正。
示例代码:
$('.search-diagnosis').select2({
placeholder: 'Select an item',
minimumInputLength: 5,
ajax: {
url: 'path/to/php/script',
dataType: 'json',
delay: 250,
data: function (params) {
return {
search: params.term, // search term
page: params.page || 1,
page_limit: 100
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data.results,
pagination: {
more: (params.page * 100) < data.total_count
}
};
},
cache: true
}
});
-------------------
Sample return data:
-------------------
{
"results": [
{
"id": "5039",
"text": "MALARIA"
},
{
"id": "8957",
"text": "MALARIA AND ACUTE RTI"
},
{
"id": "8952",
"text": "MALARIA AND BRONCHITIS"
},
{
"id": "9027",
"text": "MALARIA AND DIARRHOEA"
},
{
"id": "5043",
"text": "MALARIA AND ENTERIC FEVER"
},
],
"total_count": 5
}
我发现Select2没有加载ajax数据,因为它嵌入在模式中。我只包括:
dropdownParent: $("#modalId"),
作为Select2分页选项的一部分,现在可以了。