重建select2选项而不会丢失当前选择

时间:2013-11-21 23:27:59

标签: javascript jquery jquery-select2

我的应用程序中有一个select2下拉元素,它根据用户输入进行过滤。

要执行过滤,请执行以下操作:

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

因此,对$('#mySelect2Menu').val()的后续调用将返回null。

我希望能够在重新填充菜单选项后在select2中保留任何选定的值。这样做的最佳方式是什么?

作为一个重要的附注,对于我的特定用例,可以保证在重新填充菜单时,用户的当前选择newData中可用。

1 个答案:

答案 0 :(得分:0)

我以一种非常简单的方式解决了这个问题。我只是将当前选中的选项存储在临时变量中,重建select,然后使用临时变量调用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);