使用select2只需预先填充Ajax数据中的select

时间:2013-12-09 20:34:38

标签: ajax jquery-select2

我只是尝试使用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的功能,但远程加载。

1 个答案:

答案 0 :(得分:4)

我不认为这是理想的,但它有效:

$.get("/data.json", function(data)
{
    $('input[name="field"]').select2({
        data: data,
    });
});