使用select2可以简单地预填充Ajax数据中的select



我只是尝试使用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,
    });
});

最新更新