在此示例中:https://jsfiddle.net/wqd4ebyn/2/:
$(document).ready(function() {
$('.js-example-basic-single').select2(
{
ajax: {
url: 'https://jsonplaceholder.typicode.com/todos',
dataType: 'json'
}
}
);
});
我正在尝试使用ajax获取远程数据并使用当前选项预加载列表。除非我删除了ajax,否则它不起作用:
$(document).ready(function() {
$('.js-example-basic-single').select2(
);
});
我的列表太大了。我想要的是列出一些非常常见的选项,其余的由ajax列出。当前的实现确实允许两者兼而有之,静态选项或动态选项。我需要两者。
请查看官方文件:https://select2.org/data-sources/ajax您需要有一个处理请求参数的函数和另一个处理响应数据的函数。
你试过这个吗?如何通过Ajax请求将Select2与JSON一起使用?
编辑:我在这里创建了一个JSFIddle与您的代码:https://jsfiddle.net/7bdeo38c/6/
HTML:
<select class="js-example-basic-single" name="state"></select>
JS:
$(document).ready(function() {
$('.js-example-basic-single').select2(
{
ajax: {
url: 'https://jsonplaceholder.typicode.com/todos',
dataType: 'json',
data: function (params) {
return {
q: params.term // search term
};
},
processResults: function (data) {
return {
results: data // results
};
}
},
templateResult: formatResults, // Controls how the dropdown looks
templateSelection: formatSelection, // Controls what is displayed after selecting an item
escapeMarkup: function (m) { return m; }, // Let our custom formatter work
}
);
});
function formatResults (data) {
if (data.loading) {
return data.text;
}
var result;
if (data.completed) {
result = "<div class='select2-result-repository__description'>" + data.title + "</div>";
}
return result;
}
function formatSelection (data) {
return data.id + ' - ' + data.title || data.text;
}
官方Select2文档中也有类似的示例。有关GitHub存储库示例的完整代码,请参见Ajax一章的末尾。https://select2.org/data-sources/ajax
问题内容: 我正在使用Select2 JS版本4.0.0-rc.1,并且无法通过远程Ajax方法加载建议。 以下是标记和代码 JavaScript jQuery 服务器返回的Json结果 我完全不确定是否需要编写特定的函数来显示建议,有关Ajax部分的评论指出,我们不应更改结果Json数据。 现在有人请告诉我,让代码正常工作以显示建议还需要做些什么。 我想随着新版本的select2发生了很多变化。
目前,我正在使用一个控制器来获取所有数据,并将其放置在视图类中的foreach语句中。因此,每当加载页面时,它都会执行此函数。为了实现这一点,我使用了如下方法: 控制器类: 查看类别: 但是现在我希望页面加载得更快,因此只有当用户单击该特定的select2语句时,我才希望加载下拉列表。我尝试了以下代码来获取具有选择2功能的select2变量,即通过下拉列表获取输入文本,但都不起作用。它只是在我的页
问题内容: 我想为我的项目使用select2插件。我遵循了 此 示例,但对我而言不起作用。 JSON输出 : 剧本 : HTML : 这是我使用以下代码测试代码时的结果: Select2:AJAX结果未在响应键中返回数组。 我在哪里弄错了? 问题答案: 从提供的示例链接到所收到的错误消息,您似乎都在使用Select2 4.0。但是,您的代码是为Select2的早期版本编写的。 如果要继续使用Sel
问题内容: 我有以下代码(javascript): 对于服务器端,我正在使用ASP MVC4。select使用ajax获取数据并呈现选项,但是该选项是不可选择的。在阅读其他文章时,他们使用id函数进行了描述,但是此函数似乎在我使用的2.4的select2版本上不见了 我在github 上显示的文档中遵循ajax的示例 “加载远程数据” 问题答案: 如果您的ajax响应没有 id 和 text 属性
问题内容: 我正在使用select2插件(v4),并使用ajax加载他的选项。 如果我第一次打开选择输入,将加载数据。当我再次打开选择时,将重新加载相同的数据。 有什么方法可以防止这种“重新加载”数据?我的意思是,如果我只是打开select2并且先前已加载选项,则我不想再次加载。 这是我当前的代码: 问题答案: 由于您正在使用select2_v.4,因此必须使用(并且方法在V.4.0中已弃用)以下
到目前为止还不错。所有的省都正确地改变了,但是当它开始加载时,Select2会显示状态下拉列表的“未定义”,即使我将其设置为 我假设这可能是因为加载时,选择的国家是“美国”,它填充了一个州的列表,但没有一个是默认的或选择的。有没有其他方法来定义一个默认值,使它不显示“未定义”? 另一个(但不太重要的)问题是,例如,当某人选择“美国”,然后选择“亚利桑那”时,如果该人随后将国家改为“加拿大”,“亚利