单击jQuery中的一个主要复选框后,选中并取消选中复选框

时间:2017-01-31 12:24:20

标签: jquery html checkbox

这不是任何问题的重复。我尝试了Stackoverflow个答案,但这些对我没用。

我有一个Select All Checkbox。如果检查了所有其他复选框,如果我取消选中,则取消选中所有其他复选框。这就是我的任务。

我用这些代码尝试过。但是我失败了。 请帮忙。 谢谢。

HTML

<th width="10%" style="background-color: #cce5ff;"><input type="checkbox" id="<?php echo $user['user']->id; ?>" class="checkbox select_all user_<?php echo $user['user']->id; ?>" style="cursor: pointer;"></th>

<td width="10%">
    <input type="checkbox" id="view_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" class="is_check_v check_this_<?php echo $user['user']->id; ?>" value="view" <?php if(isset($user['permission'])){if(!empty($user_permissions) && $user_permissions->can_view==1){ echo 'checked';}else{echo '';}}?>  name="per">     

    <input type="hidden" id="h_view_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" name="view_permission[][<?php echo $folder->id; ?>][<?php echo $user['user']->id; ?>]" value="<?php if(!empty($user_permissions)){ echo $user_permissions->can_view;}else{ echo 0; } ?>">
            </td>
            <td width="10%">
                <input type="checkbox" id="edit_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" class="is_check_e check_this_<?php echo $user['user']->id; ?>" value="edit" <?php if(isset($user['permission'])){if(!empty($user_permissions) && $user_permissions->can_edit==1){ echo 'checked';}else{echo '';}}?> name="per">
                <input type="hidden" id="h_edit_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" name="edit_permission[][<?php echo $folder->id; ?>][<?php echo $user['user']->id; ?>]" value="<?php if(!empty($user_permissions)){ echo $user_permissions->can_edit;}else{ echo 0; } ?>">
            </td>
            <td width="7%">
                <input type="checkbox" id="delete_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" class="is_check_d check_this_<?php echo $user['user']->id; ?>" value="delete" <?php if(isset($user['permission'])){if( !empty($user_permissions) && $user_permissions->can_delete==1){ echo 'checked';}else{echo '';}}?> name="per">
                <input type="hidden" id="h_delete_<?php echo $folder->id; ?>_<?php echo $user['user']->id; ?>" name="delete_permission[][<?php echo $folder->id; ?>][<?php echo $user['user']->id; ?>]" value="<?php if(!empty($user_permissions)){ echo $user_permissions->can_delete;}else{ echo 0; } ?>">
            </td>

的jQuery

$(".select_all").click(function () {

        user_id = $(this).attr('id');

        $.each($('.check_this_'+user_id),function(){
            $(this).prop("checked", $('.user_'+user_id).prop("checked"));                

            $(this).click(function(){
                $('.user_'+user_id).prop("checked", false);           
            });

        });

    });

2 个答案:

答案 0 :(得分:2)

尝试此触发功能对您有所帮助。

$(".select_all").click(function() {

  user_id = $(this).attr('id');

  $.each($('.check_this_' + user_id), function() {
    $(this).prop("checked", $('.user_' + user_id).prop("checked"));
    $(this).trigger('change');
    $(this).click(function() {
      $('.user_' + user_id).prop("checked", false);
    });

  });

});

答案 1 :(得分:0)

为输入字段指定一个类名。然后在你的jquery函数中,添加以下代码

if($(".select_all").checked == true){
    $$('input.class_name').each(function(checkbox) { checkbox.checked = true; });}
else{
    $$('input.class_name').each(function(checkbox) { checkbox.checked = false; });}