【问题标题】:How to refresh the bootstrap multiselect checkbox and maintain original values of checkbox?如何刷新引导多选复选框并保持复选框的原始值?
【发布时间】:2015-03-27 16:35:14
【问题描述】:

我正在尝试刷新引导程序 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');
            }
        });
    

【问题讨论】:

  • 复选框如何获得第一个状态?模型是基于先前的操作使用的,还是多选的预定义选择状态? OnRefresh 是按钮单击和/或页面重新加载吗?
  • attr('selected', 'selected') 这是要检查复选框吗?如果是这样,请尝试 .prop('checked', true) 。
  • 没有。它不工作。在引导程序中有什么解决方案吗?我的意思是,有没有更简单的方法来调用引导 js 函数来实现这一点?

标签: asp.net-mvc twitter-bootstrap


【解决方案1】:
    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 = ''; }
    });
});

【讨论】:

  • 能否请您也添加一些上下文/解释?
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 2014-04-03
  • 2016-08-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2021-04-30
相关资源
最近更新 更多