Bootstrap-Multiselect问题,表单重置和复选框重新填充

时间:2014-09-23 19:52:40

标签: jquery bootstrap-multiselect

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

我尝试过以下无效:

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

接着是

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

感谢任何帮助!

8 个答案:

答案 0 :(得分:8)

今天我面临同样的问题......我做了

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

它对我有用......

答案 1 :(得分:7)

对我而言,它仅适用于:

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

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

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

虽然在瞬时setTimeout中包装调用会起作用!

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

答案 2 :(得分:1)

经过多次反复试验,我终于解决了这个问题。

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

$('#MyMenu option:selected').each(function () {
    $(":checkbox[value=" + $(this).val() + "]").attr('checked', true)
})

答案 3 :(得分: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");

别忘了刷新。这段代码经过了试验和测试。适合我。

答案 4 :(得分: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');
});

答案 5 :(得分:0)

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

$('#ID').multiselect('deselectAll', false);    
$('#ID').multiselect('select', []);   

答案 6 :(得分:0)

以上所有内容均不适用于我。

$('#ID').multiselect('deselectAll', false);    
$('#ID').multiselect('updateButtonText');

答案 7 :(得分:-1)

这是对我有用的代码,其他所有代码都无法正常工作。

$('#basicForm').on('reset', function(){ 
    // clearing the categories
    $('#project_category').select2('val', null);
    $('#project_category').attr('value', '');
});