我正在使用jQuery - MultiSelect插件。
我希望能够在初始选择框中添加一个选项,然后使用新选项更新MultiSelect用户界面。
这是我所拥有的(不起作用)。
var value = $("#newGroup").val();
$('#Select1').append("<option value=\"" + value + "\">" + value + "</option>");
然后我尝试调用相同的代码来重新创建多选以及其他选项,例如首先销毁它。
以下是我用来实现插件的代码。
$("#Select1").multiselect({ sortable: false, searchable: true });
答案 0 :(得分:17)
您是否拥有最新版本的MultiSelect? 1.8版现在添加了一个刷新命令,旨在更新列表以反映新添加或删除的选项。您的代码序列应为:
var value = $("#newGroup").val();
$('#Select1').append("<option value=\"" + value + "\">" + value + "</option>");
$('#Select1').multiselect( 'refresh' );
答案 1 :(得分:3)
尝试使用
$('.multiselect').multiselect('destroy');
$('.multiselect').multiselect();
答案 2 :(得分:2)
对于旧版本,您可以试试这个
$('select').multiselect('destroy').removeData().multiselect();
'destroy'方法不会从select节点中删除数据,因此当您尝试再次初始化它时,它会认为它已经初始化。 removeData()解决了这个问题。
新版本具有'刷新'方法,因此您可以将一些选项附加到选择并调用
$('select').multiselect('refresh');
当multiselect已经初始化时。
答案 3 :(得分:0)
即使我被卡在这样的东西中,也就是当我将选项附加到select之后,因为它没有更新多选,所以我得到了下面的解决方案。
$('#Select1').append("<option value=\"" + value + "\">" + value + "</option>");
在此之后添加此行。
$('#Select1').multiselect('rebuild');
它将重新构建具有最新数据的多选。