2016-07-28 62 views
0

我的頁面上有很多select2項目,它們都填滿了項目。用數據重新生成select2而不會丟失選定的索引

我從模態中添加新數據,模態關閉後,我用新數據重新填充所有select2。我發現select2失去了選定的價值!

這是我使用的代碼:

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

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

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

我要重新填充的元素又不失選定值

回答

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); 
    }); 
}) 
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); 
    }) 
+0

在我的情況下,有多個選擇2項所以我怎麼能返回所有的人都回來 – Macnux

+0

其實我提供的片段也應在這種情況下工作。您必須獲取數組中的選定值,然後用於在AJAX調用後重新選擇值。像這樣: '$(「#myselect」)。val([「1」,「2」]);' –

相關問題