镜像选择2选项而不更改选择

时间:2016-11-21 20:04:43

标签: javascript jquery select2

我有两个彼此相邻的Select2多输入。一个人从阵列中立即填充它的选项,而另一个应该从没有可用选项开始。

当用户从第一个中选择一些选项时,我希望它们可以在第二个中被选中,当从第一个中删除时,它也应该从第二个中删除,理想情况下如果在第二个中被选中则被删除。 / p>

到目前为止,我已经设法从第一个选择选项到第二个,但是我现在正在做的意思是它在第二个中自动“选择”,这不是我想要的。我只想要它们作为选项。

$('.secondSelect').select2({ //Start the second select working but blank
    width: '100%'
});

$('.firstSelect').select2({ //Start the first select with data
    width: '100%',
    data: initialData                   
}).on("change", function() { //On a change to the first get the data and re-populate the second select
    var obj = $(".firstSelect").select2("data");
    $(".secondSelect").select2({
        width: '100%',
        data: obj                       
    });    
});

此外,我尝试在第一个select2更改时删除选项(在重新填充之前将第二个设置为null)似乎完全清除了第二个select2的选定项目。不好。

希望有人能在第一次和第二次飞来飞去的时候理解这一点!感谢。

1 个答案:

答案 0 :(得分:0)

是的,想通了,等等。

第一个select2中的数组包含selected: true,这就是为什么它们被选中"默认情况下。为了解决这个问题,我只是在数组中运行并将其更改为false。删除问题仍然存在,但不是太糟糕。

        $('.secondSelect').select2({
            width: '100%'
        });

        $('.firstSelect').select2({
            width: '100%',
            data: initialData                   
        }).on("change", function() {

            var obj = $(".firstSelect").select2("data");                    
       for (var i in obj) {
         if (obj[i].selected == true) {
            obj[i].selected = false;
         }
       }                    
            $(".secondSelect option").remove();
            $(".secondSelect").select2({
                width: '100%',
                data: obj                       
            });   

        });

我确信这是一个更好的方法,但它现在必须做。

相关问题