Jquery Vérifier parent cases à cocher dans les ul li

J'ai un script qui va cocher et décocher tous les enfants des cases à cocher dans une liste imbriquée. Je suis maintenant essayer de l'obtenir afin que je puisse vérifier un niveau bas de case à cocher et il va vérifier tous les parents le font qu'au plus haut niveau. Voici un JSFiddle

<ul class="tree" id="tree">

    <li><input type="checkbox" name="account_settings" value="yes">Account Settings <!-- AND SHOULD CHECK HERE -->
        <ul>
            <li><input type="checkbox" name="one" value="one">AS One</li>
            <li><input type="checkbox" name="two" value="two">AS Two</li>
            <li><input type="checkbox" name="user_roles" value="user_roles">Users &amp; Roles <!-- SHOULD CHECK HERE -->
                <ul>
                    <li><input type="checkbox" name="user_role" value="add">Add</li>
                    <li><input type="checkbox" name="user_role" value="delete">Delete</li> <!-- CHECK HERE -->
                </ul>
            </li>
        </ul>
    </li>

    <li><input type="checkbox" name="rl_module" value="yes">RL Module</li>

    <li><input type="checkbox" name="rl_module" value="yes">Accounting
        <ul>
            <li><input type="checkbox" name="vat" value="yes">VAT</li>
            <li><input type="checkbox" name="bank_account" value="yes">Banking
                <ul>
                    <li><input type="checkbox" name="view" value="yes">View</li>
                    <li><input type="checkbox" name="crud" value="yes">CRUD</li>
                </ul>
            </li>
        </ul>
    </li>

</ul>

Et le javascript correspondant:

$('input[type=checkbox]').click(function(){

    //if is checked
    if($(this).is(':checked')){

        //check all children
        $(this).parent().find('li input[type=checkbox]').prop('checked', true);

        //check all parents
        $(this).parent().prev().prop('checked', true);

    } else {

        //uncheck all children
        $(this).parent().find('li input[type=checkbox]').prop('checked', false);

    }

});
  • Donc, si je comprends bien, vous voulez inverse de ce qu'il fait maintenant. Vous souhaitez vérifier tous les parents boîtes au moment de la vérification d'un enfant de la boîte.
  • Oui donc c'est comme un des privilèges de réglage. Vous avez besoin du parent d'être actif, mais pas le frère
  • Les enfants encore vérifiées, ou que la fonctionnalité devrait être supprimé?
  • Si vous cliquez sur Utilisateurs & les Rôles. Tous les enfants devraient être cochée ou décochée. La Comptabilité doit être cochée.
  • Lorsque vous décochez un enfant, faut-il décocher ses parents aussi? Et si il ne, faut-il décocher le parent que si c'est le dernier de la fratrie cochée, ou décochez tous ses frères et sœurs et les parents automatiquement? En gros, est-ce correct si les Paramètres de Compte est vérifié avec aucun de ses enfants cochée, ou il ne doit rester cochée si au moins un de ses enfants sont toujours vérifiées?
  • Si tous les enfants ne sont pas cochées, puis le parent direct doit être désactivée trop. Les Paramètres de compte va vérifier tous les enfants, mais si vous la décochez, de la plus basse enfant sauvegarder puis paramètres du Compte doit décocher quand les enfants ne sont pas sélectionnés.