我只是尝试使用Ajax加载select2下拉列表的数据,而不是将大型数据集内联到HTML中。
$('input[name="field"]').select2({
ajax: {
url: "/data.json",
dataType: "json",
results: function(data,page)
{
return data;
}
}
});
这是有效的,因为它会等待,直到我"打开"select2列表,然后再调用Ajax来获取数据。然后它也会正确显示数据。然而,它并没有在我键入时过滤列表。相反,它会重复调用ajax来(大概)获取过滤后的数据。
此外,如果我在表单中设置了一个现有值,它不会出现在select2控件中。我想这是因为我没有使用initSelection
,但我不清楚如何正确地做到这一点。
我这样做完全错了吗?看来我真正想要的是data
的功能,但需要远程加载。
我不认为这是理想的,但它有效:
$.get("/data.json", function(data)
{
$('input[name="field"]').select2({
data: data,
});
});