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