I am trying to disable all unchecked checkboxes when there are 5 checked checkboxes.
My code is not working here it is: http://jsfiddle.net/mtYtW/18/
My Jquery:
Your code was close, with a few major issues.
http://jsfiddle.net/mtYtW/37/
$(function() {
$('table input[type="checkbox"]').change(function() {
var countchecked = $('table input[type="checkbox"]').filter(":checked").length
if (countchecked >= 5) {
$("table input:checkbox").not(":checked").attr("disabled", true);
}else{
$("table input:checkbox").attr("disabled", false);
}
});
});
The biggest, you had your code only executing onload. You need to execute it any time one of the checkboxes is checked, that is this part:
$('table input[type="checkbox"]').change(function() {
You had a misspelled variable name countcheck
did not exist, it was countchecked
.
You were using find
when you really wanted filter
. Find will search in the descendants of the elements in your set, you wanted to filter them.
You had > 5
when you stated you wanted to disable AT 5. So it should be >=
.
You were disabling ALL checkboxes, not just the unchecked as you stated, I added .not(":checked")
.
And finally, I figured you would probably want to re-enable them if one was unchecked, so I added:
}else{
$("table input:checkbox").attr("disabled", false);
}