Reputation: 2246
I need to have at least one checkbox always checked. Both can be checked at the same time, but I need at least one to be always checked.
I attempted to do this w/ the code below. The idea is to check if the checkbox isn't checked, and add a disabled property to the other checkbox.
So for example...
If letters isn't checked, check numbers and disable it so user cannot uncheck it.
if (letters.checked === false) { // if letters isn't checked
numbers.prop("disabled", true); // disable numbers
numbers.checked = true; // keep numbers checked
} else if (numbers.checked === false) { // else if numbers isn't checked
letters.prop("disabled", true); // disable letters
letters.checked = true; // keep letters checked
}
Upvotes: 0
Views: 565
Reputation: 1386
You're going to need to put that logic into an event handler if you want it to fire every time the checked states change. Currently, it only runs on $(document).ready
and never runs after that.
Upvotes: 0
Reputation: 34107
Like this you mean :)
working demo: http://jsfiddle.net/Y3dC3/
.on
change event..is
checked for checking if it is checked or not.Hope this fits your needs.
code
$(document).ready(function () {
$('input[type=checkbox]').change(function () {
var letters = $("#letters"),
numbers = $("#numbers");
if (!letters.is(':checked')) { // if letters isn't checked
numbers.prop("disabled", true); // disable numbers
numbers.checked = true; // keep numbers checked
} else if (!numbers.is(':checked')) { // else if numbers isn't checked
letters.prop("disabled", true); // disable letters
letters.checked = true; // keep letters checked
}
});
});
Upvotes: 2