Multiple Checkboxes

D

Dave D.

I have a total of 8 checkboxes, but the user is only allowed to check
any three of them. After have been checked I have an alert box saying
that only 3 boxes can be checked. I'm trying to get so that it
disable's the checkboxes that are not checked, but then if one of the
three get unchecked, then all checkboxes become enabled again. Here's
my code so far....(In Javascript)

function chkCount()
{
var i = 0;

if (document.frmShortService.chkLH.checked) i++;
if (document.frmShortService.chkLTL.checked) i++;
....

if (i > 3)
{
alert("Only 3 Checkboxes can be checked");
return(false);
}
}

<input type="checkbox" name="chkLH" value="YES" onclick="chkCount()">
.....

Thanks in Advance!

Dave
 
D

Dominique

Im not gonna do the code for you, but i'll explain the approach you should
use...

create a global variable eg. cCount
initially set it to 0 --> var cCount = 0

change you chkCount function to chkCount(targ) where targ will be sent as
onclick="chkCount(this)"
so you know which checkbox was clicked..

everytime you call your chkCount function do this..
check whether the chekbox is now checked or unchecked:
if (targ.checked) {

} else {

}...


check the value of cCount
if the box is being unchecked, simply do this: cCount-- and nothing else
(get that from ur condition above)

if it is being checked...
if less than 3, do nothing, just increment cCount --> cCount++
if not, then you don't want that one checked, so:
targ.checked = false
where targ is the checkbox that was just clicked...

you can alert the user and ask them to uncheck something first blah blah

i hope you get the picture...
come to think of it, i coulda just done the function for you..., but then
you won't learn will you :0)

good luck!
 
M

Matt Kruse

Dave said:
I have a total of 8 checkboxes, but the user is only allowed to check
any three of them. After have been checked I have an alert box saying
that only 3 boxes can be checked. I'm trying to get so that it
disable's the checkboxes that are not checked, but then if one of the
three get unchecked, then all checkboxes become enabled again.

Rather than disabling the checkboxes after 3 are picked, why not just not
allow them to check them? onClick, check if 3 are checked. If so, then
uncheck the one they just checked and show them an alert.

I have a library which does all this for you, with very minimal coding
required. If you want to check it out, look at
http://www.mattkruse.com/javascript/checkboxgroup/

Good luck!
 
D

Dominique

what if they checked more than that?
you still have to keep track, else you gotta go uncheck everything they did,
not very pratical if you're working with a checklist of more than just 8,
and the user won't really like having to redo everything if everything is
uncheck coz he didn't understand i was sposed to check a limited number of
items... stop the user WHEN he/she makes the mistake.

cheers
:eek:)
 
D

Dave D.

So basically just increment i in a for loop? Is there a command to
"uncheck"? Or undo the last action the user did?

Thanks
Dave
 
M

Matt Kruse

Dominique said:
what if they checked more than that?

You misunderstood.

What I was saying was, don't disable the remaining checkboxes. Instead, as
soon as they check one more than they are allowed to, throw up an alert
message, and then uncheck the box. So it's impossible for them to check more
than what is allowed. This is much easier than disabling all the remaining
checkboxes, IMO.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top