选中另一个复选框时禁用复选框

莱昂纳多·巴斯

我有一个 MVC Web 应用程序,在一个部分中我管理用户的权限(例如决定用户可以查看/编辑/添加/删除哪些信息...)。

为了防止出现一些错误,如果选中 Admin 列中的复选框,则该行中的其他复选框将被禁用,因为 Admin 组可以做任何事情,与 Manager 列相同,但在这种情况下,只有他右侧的复选框将被禁用禁用。

经过多次研究,我没有找到任何对我的案例有用的东西

这是我的查看代码:

<body>
<div class="limiter">
    <br />
    <div class="container-table100">
        <div class="wrap-table100">
            <div class="table">
                <table id="tablePermission">
                    @{
                        CEG_dev_labelsEntities db = new 
                        CEG_dev_labelsEntities();
                        int countY = 1;

                        //get all groups
                        var groups = from g in db.Groups
                                     orderby g.group_name
                                     select new
                                     {
                                         g.group_name,
                                         g.group_description
                                     };
                        <thead>
                            <tr class="table100-head">
                                <th class="column1">Username</th>
                                @foreach (var item in groups)
                                {                                                                            
                                  <td><button>@item.group_name</button</td>
                                }
                            </tr>
                        </thead>
                        foreach (var item in db.Users)
                        {
                            <tbody id="myTable">
                                @{
                                    //get all user's group
                                    var group_list = from g in db.Groups
                                                     join ug in 
                             db.UserGroups on g.id_group equals ug.id_group
                                                 join u in db.Users on 
                                                 ug.id_user equals u.id_user
                                                 where u.username == 
                                                 item.username
                                                 select new
                                                 {
                                                    g.group_name
                                                 };
                                    //save the single values in a list
                                    //so all information are more accesible
                                    List<string> group_user_list = new 
                                    List<string>();
                                    foreach (var item_ug in group_list)
                                    {                                        
                                    group_user_list.Add(item_ug.group_name);
                                    }
                                    <tr style="cursor:default">
                                     <tdclass="column1">
                                      @Html.DisplayFor(model =item.username)
                                     </td>
                                     @foreach (var itemG in groups)
                                     {
                                      //check the corresponding 
                                      //checkbox if user is a member 
                                      //of a specific group                                        
                          if(group_user_list.Contains(itemG.group_name))
                          {
                          <td style="padding-left:80px"><input 
                          type="checkbox"  checked="checked" 
                          class="chkclass" username="@item.username" 
                          groupname="@itemG.group_name" id="@countY" /></td>
                           }
                           else
                           {
                           <td><input type="checkbox" class="chkclass" 
                               username="@item.username" 
                               groupname="@itemG.group_name" 
                               id="@countY" />
                           </td>
                           }
                           countY++;
                         }
                        </tr>
                        }
                     </tbody>
                        }
                    }
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>

这是表:

在此处输入图片说明

任何建议表示赞赏。

狮子座。

编辑

我在用于管理用户权限的复选框上有这个点击事件

$(document).ready(function () {
    $('.chkclass').click(function () {
        var getchkid = $(this).attr('id');
        var isChecked = $('#' + getchkid).is(':checked');
        if ($('#' + getchkid).is(':checked') == true) {
            // to be send to your call
            var username = $(this).attr('username');
            var groupname = $(this).attr('groupname');
            //here put your call ajax to your action
            $.ajax({
                type: 'Post',
                url: '/UserGroups/AddPermission',
                dataType: 'json',
                data: {
                    'usr': username,
                    'grp': groupname
                },
                success: function (result) {
                    $('#' + getchkid).prop('checked', true);
                },
                error: function (jqxhr, status, exception) {
                    alert('Exception:', exception);
                }
            })
        }
        else {
            if ($('#' + getchkid).is(':checked') == false) {
                // to be send to your call
                var username = $(this).attr('username');
                var groupname = $(this).attr('groupname');
                //here put your call ajax to your action
                $.ajax({
                    type: 'Post',
                    url: '/UserGroups/DeletePermission',
                    dataType: 'json',
                    data: {
                        'usr': username,
                        'grp': groupname
                    },
                    success: function (result) {
                        if (result.error == true) {
                            alert('Error, must be there at least one 
                            admin');
                            $('#' + getchkid).prop('checked', true);
                        }
                        else {
                            $('#' + getchkid).prop('checked', false);
                        }

                    },
                    error: function (jqxhr, status, exception) {
                        alert('Exception:', exception);
                    }
                })
            }
        }
    });
});
基思

由于您正在执行一个所有内容都相同的循环,因此您可以执行以下操作:

https://jsfiddle.net/z2mf8314/1/

$('.chkclass').click(function () {
  var getchkid = $(this).attr('id');
  var isChecked = $('#' + getchkid).is(':checked');
  var username = $(this).attr('username');
  var groupname = $(this).attr('groupname');
  (getchkid == "1" && isChecked) ? $(this).closest('tr').find('input').not('#1').prop({'disabled': true, 'checked': false }) : $(this).closest('tr').find('input').prop('disabled', false);
  if (isChecked) {
    // to be send to your call
    //here put your call ajax to your action

  }
  else {
    // to be send to your call
    //here put your call ajax to your action

  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击另一个复选框时,该复选框变为未选中状态

来自分类Dev

选中一个复选框时,请选中其他复选框

来自分类Dev

jQuery选择多个属性并选中/取消选中另一个复选框

来自分类Dev

选中复选框,如果另一个复选框被选中

来自分类Dev

jQuery根据选中的另一个复选框设置一个复选框

来自分类Dev

禁用选择/复选框当另一个被选中/选中时

来自分类Dev

如何选中另一个复选框的更改复选框?

来自分类Dev

如果选中一个复选框,如何取消选中另一个复选框?

来自分类Dev

单击另一个复选框时禁用该复选框

来自分类Dev

单击另一个表单输入字段时,自动选中复选框

来自分类Dev

单击另一个复选框时,该复选框变为未选中状态

来自分类Dev

当用户选中另一个复选框时,取消选中一个复选框(复选框的复选框在地图中)

来自分类Dev

为什么在单击另一个复选框时未选中我的复选框?(Vue,CSS)

来自分类Dev

选择另一个复选框后,如何取消选中该复选框?

来自分类Dev

在jsf中选中另一个复选框时,取消选中该复选框

来自分类Dev

如何通过选中Microsoft Lightswitch中的另一个复选框来更改复选框的状态

来自分类Dev

单击另一个复选框后,无法从复选框中应用和删除禁用的属性

来自分类Dev

剔除将复选框列表选中的项目绑定到另一个复选框列表

来自分类Dev

选中复选框时,显示另一个复选框

来自分类Dev

如何选中另一个复选框的更改复选框?

来自分类Dev

如果选中一个复选框,如何取消选中另一个复选框?

来自分类Dev

选中另一个复选框后,取消选中该复选框

来自分类Dev

选中复选框时,将 div 移动到另一个 div

来自分类Dev

单击另一个复选框时更新一个复选框

来自分类Dev

当复选框被选中或复选框未选中删除值时,如何在另一个文本框中获得复选框值和文本框值的总和

来自分类Dev

复选框 - 选中时触发一个功能,未选中时触发另一个功能

来自分类Dev

当另一个复选框被选中时,如何选中一个复选框?[JavaScript]

来自分类Dev

如何仅从组复选框中的另一个复选框中选中所有其他复选框

来自分类Dev

一个复选框取消选中另一个

Related 相关文章

  1. 1

    单击另一个复选框时,该复选框变为未选中状态

  2. 2

    选中一个复选框时,请选中其他复选框

  3. 3

    jQuery选择多个属性并选中/取消选中另一个复选框

  4. 4

    选中复选框,如果另一个复选框被选中

  5. 5

    jQuery根据选中的另一个复选框设置一个复选框

  6. 6

    禁用选择/复选框当另一个被选中/选中时

  7. 7

    如何选中另一个复选框的更改复选框?

  8. 8

    如果选中一个复选框,如何取消选中另一个复选框?

  9. 9

    单击另一个复选框时禁用该复选框

  10. 10

    单击另一个表单输入字段时,自动选中复选框

  11. 11

    单击另一个复选框时,该复选框变为未选中状态

  12. 12

    当用户选中另一个复选框时,取消选中一个复选框(复选框的复选框在地图中)

  13. 13

    为什么在单击另一个复选框时未选中我的复选框?(Vue,CSS)

  14. 14

    选择另一个复选框后,如何取消选中该复选框?

  15. 15

    在jsf中选中另一个复选框时,取消选中该复选框

  16. 16

    如何通过选中Microsoft Lightswitch中的另一个复选框来更改复选框的状态

  17. 17

    单击另一个复选框后,无法从复选框中应用和删除禁用的属性

  18. 18

    剔除将复选框列表选中的项目绑定到另一个复选框列表

  19. 19

    选中复选框时,显示另一个复选框

  20. 20

    如何选中另一个复选框的更改复选框?

  21. 21

    如果选中一个复选框,如何取消选中另一个复选框?

  22. 22

    选中另一个复选框后,取消选中该复选框

  23. 23

    选中复选框时,将 div 移动到另一个 div

  24. 24

    单击另一个复选框时更新一个复选框

  25. 25

    当复选框被选中或复选框未选中删除值时,如何在另一个文本框中获得复选框值和文本框值的总和

  26. 26

    复选框 - 选中时触发一个功能,未选中时触发另一个功能

  27. 27

    当另一个复选框被选中时,如何选中一个复选框?[JavaScript]

  28. 28

    如何仅从组复选框中的另一个复选框中选中所有其他复选框

  29. 29

    一个复选框取消选中另一个

热门标签

归档