4

各リスト項目の横にチェックボックスがあるフォルダーのリストを取得する AJAX 要求があります。親フォルダーの横にあるチェックボックスをオンにすると、次のようにしてすべての子フォルダーが自動的にチェックされます。

var checkChildCheckBoxes = function(){
            var isAlreadyChecked = $(this).attr('isChecked');
            if(isAlreadyChecked == 'true'){
                $(this).parents(':eq(1)').find('.userPermissionCheckBox').each(function(){
                    $(this).prop('checked', false);
                });
                $(this).attr('isChecked', 'false');
            }
            else{   
                $(this).parents(':eq(1)').find('.userPermissionCheckBox').each(function(){
                    $(this).prop('checked', true);
                });
                $(this).attr('isChecked', 'true');
            }
        }

これは見事に機能します。私が解決しようとしているのは、親のチェックボックスをオンにしておらず、子のチェックボックスをオンにすると、自動的に親がチェックされるということです。

私はこのように成功しなかった:

if($(this).parent('ul').find('.userPermissionCheckBox:eq(0)').is('checked')){

                }
                else{
                    $(this).parent('ul').find('.userPermissionCheckBox:eq(0)').prop('checked', true);
                }

この質問をコードでロードしたくなかったので、リストの構造と使用方法を表示するフィドルを作成しました。ここにアクセスしてください: http://jsfiddle.net/BTXNk/1/私は Javascript の初心者です。この質問がばかげていないことを願っています。時間を割いて読んでいただきありがとうございます。http://jsfiddle.net/BTXNk/1/

4

3 に答える 3

0
$(document).ready(function () {
    $('input[type=checkbox]').click(function () {
        // if is checked
        if ($(this).is(':checked')) {
            $(this).parents('li').children('input[type=checkbox]').prop('checked', true);
            $(this).parent().find('li input[type=checkbox]').prop('checked', true);    
        } else {   
            $(this).parents('li').children('input[type=checkbox]').prop('checked', false);
            // uncheck all children
            $(this).parent().find('li input[type=checkbox]').prop('checked', false);  
        }
    });
});
于 2015-06-11T05:37:28.923 に答える