2013-11-21 34 views
0

我的應用程序中有一個select2下拉元素,根據用戶輸入進行過濾。在不丟失當前選擇的情況下重建select2選項

執行過濾,我做了以下內容:

$mySelect2Menu.empty(); 
$.each(newData, function(ind, val) { 
    $mySelect2Menu.append($('<option></option>').attr('value', val).text(val)); 
}); 

由於這樣做的結果,然而,隨後到$('#mySelect2Menu').val()調用將返回null。

我希望能夠在菜單選項重新填充後保留select2中的任何選定值。要做到這一點,最好的方法是什麼?

作爲一個重要的方面說明,我的特定用途的情況下,就有了保障,當菜單重新填充,用戶的當前選擇newData可用。

回答

0

我以非常簡單的方式解決了這個問題。我只是存儲在一個臨時變量當前選擇的選項,重新選擇,然後調用select2('val')與臨時變量:

var selectedVals = $sel.val(); 
$sel.empty(); 
$.each(newOptions, function(ind, val) { 
    $sel.append($('<option></option>').attr('value', val).text(val)); 
}); 
$sel.select2('val', selectedVals); 
相關問題