使用数据重新填充select2而不会丢失所选索引

时间:2016-07-28 12:26:53

标签: jquery jquery-select2-4

我的页面上有很多select2个项目,这些项目都填充了项目。

我从模态中添加新数据,在模态关闭后,我使用新数据重新填充所有select2。我发现select2丢失了所选的值!!

这是我使用的代码:

 $.get(callPath, { }, function(dataDropDown) {

            $('.'+ refInput).each(function(){                                          
                    $(this).html(dataDropDown);
                    $(this).trigger("change");
            });

           // $("'" + refInput + "'").html(dataDropDown);
        })

我想重新填充元素而不会丢失所选的值

2 个答案:

答案 0 :(得分:1)

$.get(callPath, { }, function(dataDropDown) {

      $('.'+ refInput).each(function(){  
           // get current value:  
           var selected = $(this).select2('val');                     
                $(this).html(dataDropDown);
                $(this).trigger("change");
           // set it after repopulate:
           $(this).select2('val', selected);
     });
})

答案 1 :(得分:0)

您可以在Ajax请求函数中传递选定的值。像这样:

var selectedId = $('#myselect').val();
$.get(callPath, { }, function(dataDropDown, selectedId) {

        $('.'+ refInput).each(function(){                                          
                $(this).html(dataDropDown);
                $(this).trigger("change");
        });
        $('#myselect').val(selectedId);

       // $("'" + refInput + "'").html(dataDropDown);
    })