这是我的代码:
$('.selecter_test').select2(
{
placeholder: 'Enter a username...',
minimumInputLength: 0,
allowClear: true,
ajax: {
quietMillis: 200,
url: "/ajax/test",
dataType: 'jsonp',
data: function (term, page) {
return {
q: term
};
},
results: function (data, page) {
return { results: data.Results};
}
}
});
在后端,我加载一个包含 id 和 name 的数组,并使用 json_encode
函数返回它。我的 AJAX 调用响应如下所示(在 Chrome 中的“网络/响应”选项卡下查看):
[{"id":4017,"text":"10anabanana10"},{"id":4813,"text":"adria14na.bbb@gmail.com"}... ]
但是,我的 Select2 只是一直显示“正在搜索...”文本,并且什么也不显示。我听说我不需要使用 formatResult 和 formatSelectin 函数,因为我使用常规范式。
最佳答案
我通过将数据类型参数更改为 json 而不是 jsonp 来修复它。在 Stackoverflow 上的其他地方找到了答案。乔恩的观点很好。
关于javascript - 即使 JSON 格式正确,Select2 也不显示 AJAX 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24062126/