Javascript 重置jQuery UI Multiselect

Javascript 重置jQuery UI Multiselect,javascript,jquery,user-interface,jquery-multiselect,Javascript,Jquery,User Interface,Jquery Multiselect,我正在使用jQuery UI Multiselect(Michael Aufreiter(quasipartikel.at,Yanick Rochon)。我想用新数据重置我的Multiselect。我使用了 var myselect = $("#myselect"); var firstTime = true; if (firstTime) { myselect.val(data.myselect.split(',')); myselect.multiselect();

我正在使用jQuery UI Multiselect(Michael Aufreiter(quasipartikel.at,Yanick Rochon)。我想用新数据重置我的Multiselect。我使用了

var myselect = $("#myselect");
var firstTime = true;

if (firstTime) {
    myselect.val(data.myselect.split(','));
    myselect.multiselect();
    firstTime = false;

} else {
    myselect.multiselect("destroy");
    myselect.val(selectedValuesAsString.split(','));
    alert(selectedValuesAsString.split(','));
    myselect.multiselect();
}

alert(myselect.val());
第一次正确加载。但第二次(在else条件下)
myselect.val()
变为
selectedValuesString.split(',')
值的两倍

例如:如果选择了ValuesString.split(',')。val()显示A,B

val()显示A,B,A,B

第三次出现三次(A,B,A,B,A,B)。因此它在UI中也出现了多次。我不知道为什么会出现这种情况。非常感谢您的帮助


谢谢!

为什么我觉得你的代码被破坏了
{.val(data.myselect.split(',');
@Popeye是对的。你在第一次调用.val()之前丢失了变量。但是,如果“destroy”如果函数正确,那么代码应该可以工作。如果无法执行重置调用,则可以使用$.replaceWith()和新的select元素完全替换select元素。