我正在使用来自https://github.com/davidstutz/bootstrap-multiselect的引导多选。
问题场景:根据用户输入,我收到要通过 ajax 调用包含的选项。我想仅在有超过 1 个选项时才包含全选和过滤。我正在尝试动态添加全选和过滤属性。但问题是,多选似乎记得我在上一次调用中设置的属性。
加载页面时,ajax 调用返回 3 个选项,为多选启用全选和过滤器。但是当用户更改输入时,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,它们具有我预期的属性。上面的代码似乎没有使用新参数重新创建多选。我也尝试过破坏和重建,但它只是破坏而不重建。
谁能帮我理解这里出了什么问题?