我的应用程序中有一个select2下拉元素,它根据用户输入进行过滤。
要执行过滤,请执行以下操作:
$mySelect2Menu.empty();
$.each(newData, function(ind, val) {
$mySelect2Menu.append($('<option></option>').attr('value', val).text(val));
});
因此,对$('#mySelect2Menu').val()
的后续调用将返回null。
我希望能够在重新填充菜单选项后在select2中保留任何选定的值。这样做的最佳方式是什么?
作为一个重要的附注,对于我的特定用例,可以保证在重新填充菜单时,用户的当前选择将在newData
中可用。
答案 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);