6

我在我的应用程序中使用bootstrap-multiselect作为下拉菜单。一切正常,除了我的表单重置,当我希望它恢复到最初选择的值时。它在关闭时会在菜单中按预期显示选定的值(即创建具有多个选择的列表),但是当我打开菜单时,未选中所选项目的复选框。

我尝试了以下方法无济于事:

$("#MyMenu").multiselect('refresh');
$("#MyMenu").multiselect('rebuild');
$("#MyMenu").multiselect('destroy');

其次是

$("#MyMenu").multiselect();

任何帮助表示赞赏!

4

8 回答 8

9

对我来说,它只适用于:

$('#id').multiselect('refresh');

但是,必须注意,在表单输入实际重置之前会触发重置事件。实际上,这意味着以下内容将不起作用:

$('#formID').on('reset', function(){
    $('#id').multiselect('refresh');
});

而将调用包装在瞬时 setTimeout 内将起作用!

$('#formID').on('reset', function(){
    setTimeout(function(){
        $('#id').multiselect('refresh');
    });
});
于 2014-11-13T15:33:14.083 回答
8

今天我遇到了同样的问题...我做到了

$("option:selected").removeAttr("selected");
$("#MyMenu").multiselect('refresh');

它对我有用...

于 2014-12-22T09:42:33.477 回答
2

经过多次尝试和错误,我终于像这样解决了它。

$('#MyMenu').multiselect('destroy');
$('#MyMenu').multiselect();

$('#MyMenu option:selected').each(function () {
    $(":checkbox[value=" + $(this).val() + "]").attr('checked', true)
})
于 2014-09-30T16:15:31.110 回答
0

str 是数据库中的数组

$('#dropdown').multiselect({includeSelectAllOption: true,});
$("#dropdown").multiselect('deselectAll', false);

首先初始化并重置 doropdown。

for(i=0; i<= str.length; i++){           
      $("#dropdown").find("option[value='"+ $.trim(str[i])+"']").prop("selected", true);
      $("#dropdown").find("option[value='"+ $.trim(str[i])+"']").attr("selected", "selected");          
}

$("#dropdown").multiselect("refresh");

此代码将预选值。

另外,如果你想重置下面的下拉列表是代码

$('#dropdown').multiselect({includeSelectAllOption: true,});
$("#dropdown").multiselect('deselectAll', false);

$("#dropdown").multiselect("refresh");

不要忘记刷新。此代码经过试验和测试。为我工作。

于 2015-04-09T13:58:51.760 回答
0

通过按顺序执行以下代码,重置多选对我有用。

$('#ID').multiselect('deselectAll', false);    
$('#ID').multiselect('select', []);   
于 2016-06-01T10:53:04.807 回答
0

要在页面加载时将多选重置为其原始状态,请尝试:

// Initialize Multiselect
var msDropdownInitialSelected;
$(document).ready(function () {
    $('#msDropdown').multiselect();
    $('#msDropdown').multiselect('select', valuesArray);

    msDropdownInitialSelected = $('#msDropdown').val();
});

// Reset Multiselect
$('msDropdown').on('reset', function(){
    $('#msDropdown').multiselect('select', msDropdownInitialSelected);
    $('#msDropdown').multiselect('refresh');
});
于 2016-01-13T16:50:08.003 回答
0

以上都不是,但以下对我有用。

$('#ID').multiselect('deselectAll', false);    
$('#ID').multiselect('updateButtonText');
于 2017-06-28T13:52:41.513 回答
-1

这是对我有用的代码,其他所有代码都行不通。

$('#basicForm').on('reset', function(){ 
    // clearing the categories
    $('#project_category').select2('val', null);
    $('#project_category').attr('value', '');
});
于 2017-02-13T08:21:07.320 回答