2017-01-31 13 views
0

これは疑問の重複ではありません。Stackoverflowの回答を試みましたが、それらは役に立たないです。jQueryで1つのメインチェックボックスをクリックした後にチェックボックスをオンまたはオフにします

[すべてを選択]チェックボックスが1つあります。他のすべてのチェックボックスにチェックが付いている場合は、チェックを外すと他のチェックボックスはすべてオフになります。これは私の仕事です。

私はこれらのコードで試しました。しかし、私は失敗しました。 助けてください。 ありがとうございます。

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);   
      }); 

     }); 

    }); 
+1

"*時には\はうまくいきません*" - それはどういう意味ですか?どのようにして「正しく機能していない」というのは間違っていますか?それとも全くやっていないの? 「時には」という頻度は、特定のイベントや相互作用に応じていつも壊れていますか? –

+1

問題が何であるか、どのように現れているか、コードが何を間違っているか、まったくやっていないかについて明確な説明がないので、このケースでは、この場合はトピックを外すよう投票します。 Please:「* [ask] *」のガイドラインを読んで、あなたのコードに何がうまくいかないのかを明確に述べてください。 –

+0

@David Thomas:ご迷惑をおかけして申し訳ありませんが、どうもありがとうございます。私の質問を更新しました。 –

答えて

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; });} 
関連する問題