如何刷新bootstrap multiselect复选框并保持复选框的原始值?

时间:2015-03-27 16:35:14

标签: asp.net-mvc twitter-bootstrap

我正在尝试刷新bootstrap 3.0多选控件。 在刷新时,我想在首次呈现局部视图时将复选框重置为先前的状态

我怎样才能做到这一点?

我尝试了以下方法,但没有取得成功。

  1. 维护隐藏字段,用于存储选定的复选框值一次视图 被渲染了。

    点击重置按钮:

    2.1取消选中所有复选框 2.2只检查那些隐藏字段值的复选框。

    j('#btnReset11').click(function () {            
            j("#divErrorMessage ul li").not(':first').remove();
            j("#divErrorMessage").hide();
            j("#divSuccessMessage").hide();
    
            j("#includeSelectAllOption").find("option").removeAttr("selected");
            j("#chkRoles ul li").removeClass("active");
            j("#chkRoles .btn-group").find("button").removeAttr('title');
            j("#chkRoles .btn-group").find("button").text('Select');
    
           var value = j("#selectedCheckboxes").val();
            valueItems = value.split(", ");
            for (var i = 0; i < valueItems.length; i++) {
                j('#' + valueItems[i]).attr('selected', 'selected');
                j("#chkRoles ul li input[value=" + valueItems[i] + "]").parent().parent().parent().addClass("active");
                var title = j("#chkRoles .btn-group").find("button").title;
                j("#chkRoles .btn-group").find("button").removeAttr(title);
            }
    
            if (valueItems.length > 0) {
                j("#chkRoles .btn-group").find("button").text(valueItems.length + ' selected');
            }
            else {
                j("#chkRoles .btn-group").find("button").text('Select');
            }
        });
    

1 个答案:

答案 0 :(得分:0)

    j(document.body).on('click', '#btnReset-Button', function () {        
    j("#divErrorMessage").hide();
    j(this).parents('.PopupModalClass').find('input[type="text"],input[type="email"],select').each(function () {
        if (this.defaultValue != '' || this.value != this.defaultValue) {
            this.value = this.defaultValue;
            setTimeout(function () {
                j('.PopupModalClass #multiSelectDropdown').multiselect('refresh');
            });
        } else { this.value = ''; }
    });
});