Rotate value of checkboxes

by secretgspot

HTML

<input type="checkbox" name="checkbox" value="" id="checkbox">
<input type="checkbox" name="checkbox2" value="" id="checkbox2">

JavaScript

// Rotate value of checkboxes from unchecked, to indeterminate, to checked.

var $check = $("input[type=checkbox]"), el;
$check
   .data('checked',0)
   .click(function(e) {
       
        el = $(this);
                
        switch(el.data('checked')) {
            
            // unchecked, going indeterminate
            case 0:
                el.data('checked',1);
                el.prop('indeterminate',true);
                break;
            
            // indeterminate, going checked
            case 1:
                el.data('checked',2);
                el.prop('indeterminate',false);
                el.prop('checked',true);                
                break;
            
            // checked, going unchecked
            default:  
                el.data('checked',0);
                el.prop('indeterminate',false);
                el.prop('checked',false);
                
        }
        
    });