icheck
icheck copied to clipboard
indeterminate checkboxes
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;
}
}
}
@fronteed Any idea?