无法使用update params创建多选,destroy不允许重新创建

时间:2013-09-27 18:16:22

标签: javascript jquery twitter-bootstrap multi-select

我正在使用https://github.com/davidstutz/bootstrap-multiselect中的bootstrap multiselect。

问题场景:根据用户输入,我收到通过ajax调用包含的选项。 我想要包括select all并仅在有多个选项时进行过滤。我正在尝试动态添加select all和filter属性。但问题是,多选似乎记得我在前一次调用中设置的属性。

加载页面时,ajax调用返回3个选项,为多选项启用select all和filter。但是当用户更改输入时,ajax调用现在只返回1个选项。我正在更新函数参数(如(a)中)并尝试重新创建多选,如(b)

           (a) function updateParams(options, params){
                   if (options.length<1 ){
                       params.includeSelectAllOption = false;
                       params.enableFiltering = false;
                       params.enableCaseInsensitiveFiltering = false;
                   } else {
                       params.includeSelectAllOption = true;
                       params.enableFiltering = true;
                       params.enableCaseInsensitiveFiltering = true;
                   }
                   return params;
               }


              (b) {.... 
                   // $(ele).multiselect('destroy');
                   $(ele).html('');
                   var params = $.extend(true, {}, paramsGiven);
                   params = updateParams(options, params);
                   $(ele).multiselect(params);
                   $(ele).multiselect("rebuild");
                   ...}

我复制了参数,以便他们不会在用户输入之间保持不变。我在更新之前和之后打印了params和paramsGiven,它们按照我的预期进行了属性。上面的代码似乎没有用新的参数重新创建多选。我也尝试过摧毁和重新创建,但它只会破坏并且不会再创造。

有谁能帮我理解这里出了什么问题?

0 个答案:

没有答案