Forum Moderators: open

Message Too Old, No Replies

alert from checkbox_group value

         

henry214

1:26 pm on Mar 10, 2005 (gmt 0)

10+ Year Member



Hello ,

I am trying to create an alert based on a checkbox_group value, but cannot get it to work.
I appreciate any help.
This is in .cgi script
I am trying to alert user
if FU is eq 1 0r 2
and RE value is false/null or have not chosen anything.

it is OK to have FU set eq 0
and RE set to false/null

function validateAndSubmit(form,but) {
.
.
.
if (form.FU.selectedIndex == 0) {
alert('You have not selected an FU!');
return false;
} //This alert works good.

if (form.FU.selectedIndex!= 0 &&
form.Re.value == false) {
alert('You have selected FU but no Re value!');
return false;
} //This does not work
.
.
.
@yes_no = qw(Select No Yes);
print $query->popup_menu(-name=>'FU', -values=>\@yes_no, -defualt=>$query->param('FU'));

@re = ("None","ID","Re","Tr","flow");
print $query->checkbox_group(-name=>
'Re',
-values=>\@re,
-cols=>1,
-rows=>5,
-default=>'false');

CaseyRyan

3:47 pm on Mar 10, 2005 (gmt 0)

10+ Year Member



I think what you're trying to do is once you have something selected, you want at least 1 checkbox to be checked. If that's the case, you need to use something like the code below to validate that at least one checkbox is checked.


if ((form.FU.selectedIndex!= 0) && (isChecked(form.Re) == false)) {
alert('You have selected FU but no Re value!');
return false;
} //This does not work
/*
** Function */
function isChecked(objCheckbox){
var bReturn = false;
for var i = 0; i < objCheckbox.length; i++){
if (objCheckbox[i].checked) {bReturn = true;}
}
return bReturn;
}

-=casey=-

edit: I forgot a closing curly bracket on the for loop.

kapow

4:41 pm on Mar 10, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi CaseyRyan

Thanks for your reply to my other question which does seem the same as this one. Using your code I tried the following but it doesn't work. I'm not much good at JS so it is probably a simple bug. I have changed it a bit as it is part of a longer validation script (I have been using for a year or two).

var bReturn = false;
for (var i = 0; i < objCheckbox.length; i++) {
if (objCheckbox[i].checked) bReturn = true; }
if (bReturn = false)
{ message += "- Tick at least one box\n";
submitOK="False"; }

CaseyRyan

6:10 pm on Mar 10, 2005 (gmt 0)

10+ Year Member



You need to use == when checking a condition inside of a if statement. I fixed it in the below code.


var bReturn = false;
for (var i = 0; i < objCheckbox.length; i++) {
if (objCheckbox[i].checked) {
bReturn = true;
}
}
if (bReturn == false)
{ message += "- Tick at least one box\n";
submitOK="False";
}

-=casey=-

henry214

6:55 pm on Mar 10, 2005 (gmt 0)

10+ Year Member



Thank you Casey