Javascript-基于数组值选中/取消选中复选框

Javascript-基于数组值选中/取消选中复选框,javascript,arrays,laravel,laravel-5,checkbox,Javascript,Arrays,Laravel,Laravel 5,Checkbox,我正在为我的项目开发一个laravel用户管理系统,允许管理员编辑在网站上注册的选定用户。“编辑”按钮打开一个包含用户信息的模式表单,其中包括特定网站权限的复选框 我通过数据参数传递权限信息,如果角色名称包含在角色数组中,则权限复选框将设置为“选中”。使用单个权限时,一切都会正常工作,但只要我查看了具有多个权限的用户,在刷新页面之前,每个用户的复选框都会保持选中状态 我的代码如下: <a href="#" class="btn btn-edit" data-toggle="modal" d

我正在为我的项目开发一个laravel用户管理系统,允许管理员编辑在网站上注册的选定用户。“编辑”按钮打开一个包含用户信息的模式表单,其中包括特定网站权限的复选框

我通过数据参数传递权限信息,如果角色名称包含在角色数组中,则权限复选框将设置为“选中”。使用单个权限时,一切都会正常工作,但只要我查看了具有多个权限的用户,在刷新页面之前,每个用户的复选框都会保持选中状态

我的代码如下:

<a href="#" class="btn btn-edit" data-toggle="modal" data-target="#editModal" data-username="{{ $user->username }}" data-permissions="{{ $user->roles->pluck('name') }}" id="editUser">Edit</a>

sdfsdfsdf

    <script type="text/javascript">
        $(document).on('click', '#editUser', function() {
            $('#edit-username').val($(this).data('username'));
                var userPerms = $(this).data('permissions');

                if (userPerms.includes('Admin'))
                {
                    document.getElementById("edit-admin_perm").checked = true;
                }

                if (userPerms.includes('Captain'))
                {
                    document.getElementById("edit-captain_perm").checked = true;
                 }

          });
     </script>

$(文档)。在('单击','编辑用户',函数()上){
$('#编辑用户名').val($(this.data('username'));
var userPerms=$(this.data('permissions');
if(userPerms.includes('Admin'))
{
document.getElementById(“edit-admin\u perm”).checked=true;
}
if(用户权限包括(‘船长’)
{
document.getElementById(“edit-captain\u perm”).checked=true;
}
});
我不确定是否有方法“清除”每个按钮上的数据以打开模式,或者是否有其他方法。但经过近一个小时的搜索,我空手而归


任何帮助都将不胜感激

如果用户没有权限,则必须取消选中复选框。 最简单的方法是在单击按钮后取消选中所有复选框。如果取消选中所有复选框,则可以使用算法选中用户有权选中的所有复选框

您的代码应该如下所示

$(document).on('click', '#editUser', function() {

        // uncheck all checkboxes before setting the one with permissions to "checked"
        document.getElementById("edit-admin_perm").checked = false;
        document.getElementById("edit-captain_perm").checked = false;

        $('#edit-username').val($(this).data('username'));

我知道这是个问题,我错过了一些愚蠢的东西,现在这很有意义。非常感谢。