icheck icon indicating copy to clipboard operation
icheck copied to clipboard

indeterminate checkboxes

Open SirwanAfifi opened this issue 8 years ago • 1 comments

I am using this technique for having tri-state check boxes that works great with normal checkbox, But I going to use iCheck, But I can't get it to work, Here's my code:

$(function () {

    var $check = $('.tristate');

    var editMode = $('#editMode').data('edit-mode').toLowerCase();

    var isTrueSet = (editMode === 'true');
    if (isTrueSet) {
        $check.each(function () {
            select_change(this, isTrueSet);
        });
    }

    $check.click(function () {
        select_change(this, false);
    });
});

function select_change(element, isEditModel) {
    var el = $(element);
    var data = el.data('checked');
    var i = isEditModel ? 2 : 0;
    if (!isEditModel) {
        switch (data) {

            // unchecked, going indeterminate
            case i:
                el.data('checked', 2);
                el.prop('indeterminate', true);
                el.val(2);
                break;
            case 0:
                el.data('checked', 2);
                el.prop('indeterminate', true);
                el.val(2);
                break;

                // indeterminate, going checked
            case 1:
                el.data('checked', 0);
                el.prop('indeterminate', false);
                el.prop('checked', false);
                el.val(0);
                break;

            case 2:
                el.data('checked', 1);
                el.prop('indeterminate', false);
                el.prop('checked', true);
                el.val(1);
                break;

                // checked, going unchecked
            default:
                el.data('checked', 0);
                el.prop('indeterminate', false);
                el.prop('checked', false);
                el.val(0);

        }
    } else {
        switch (data) {

            case 0:
                el.data('checked', 0);
                el.prop('indeterminate', false);
                el.prop('checked', false);
                el.val(0);
                break;

            case 1:
                el.data('checked', 1);
                el.prop('indeterminate', false);
                el.prop('checked', true);
                el.val(1);
                break;

            case 2:
                el.data('checked', 2);
                el.prop('indeterminate', true);
                el.val(2);
                break;

        }
    }
}

SirwanAfifi avatar Jan 14 '17 15:01 SirwanAfifi

@fronteed Any idea?

SirwanAfifi avatar Mar 05 '17 14:03 SirwanAfifi