【发布时间】:2014-07-26 13:27:30
【问题描述】:
这是我的代码:
$('.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 中的 Network/Response 标签下查看):
[{"id":4017,"text":"10anabanana10"},{"id":4813,"text":"adria14na.bbb@gmail.com"}... ]
但是,我的 Select2 只是一直显示“正在搜索...”文本并且什么也不显示。我听说我不需要使用 formatResult 和 formatSelectin 函数,因为我使用的是常规格式。
【问题讨论】:
-
dataType: 'jsonp'?那是怎么回事? -
这是他们建议在文档页面上使用的格式:ivaynberg.github.io/select2/#ajax
-
“远程”在该上下文中的意思是“在您自己以外的域上”。这似乎不是这里的情况。
-
不管怎样,看来只需要将结果回调改成
return { results: data }即可。我在这里看不到任何Results属性。 -
你说得对,我刚刚做了,但我仍然有问题,它一直显示“搜索...”,但没有任何反应,尽管我认为响应格式正确...
标签: javascript jquery ajax json jquery-select2