10

我正在尝试使用 Select2 插件来创建 4 个相互依赖的下拉列表。我一直在努力寻找正确的方法来更新加载选项的数据。

我的目标是通过 ajax 加载新数据,但是一旦我在客户端中有它,我就无法将新数据添加到选择列表中。

我试过的代码在这里:

$(#"a3").select2({
    placeholder: "select an item",
    allowClear: true}).on("change",
    function (e) {
         var results = $.get("url?id=2",
            function (data, textStatus, jqXHR) {
                $(this).select2({ data: { results: data, text: "Name" } });
        });
    }
); 

这里还有另一个问题 select2 动态更改项目 ,但那里的解决方案适用于 Select2 v3.2 但不适用于 Select2 v3.3

4

3 回答 3

10

伊戈尔用一种方法回到我身边

var data=[...];    
$().select2({data: function() {return {results:data};}});    
/// later    
data=[...something else];    
// next query select2 will use 'something else' data
于 2013-02-13T22:00:58.053 回答
4

正确的格式是:

.select2("data", {...})
于 2013-02-11T00:47:39.457 回答
2

对于 Select2 v4.x,这里有一个小的js 类

使用这个,一个 select2 列表框的选项将根据另一个 select2 列表框的选择由 ajax 加载/刷新。并且可以链接依赖项。

例如 -

new Select2Cascade($('#country'), $('#province'), 'path/to/geocode', {type:"province", parent_id: ''});
new Select2Cascade($('#province'), $('#district'), 'path/to/geocode', {type:"district", parent_id: ''});

检查codepen上的演示。这里还有一篇关于如何使用它的帖子。

于 2016-08-02T10:33:31.900 回答