Beaverman
12-22-2003, 09:06 AM
Within my validation script, I need to be able to check whether a user has selected a checkbox from checkboxes that have been enabled.
I need to check whether a 'package' checkbox has been selected, and if not, alert the user.
Hope that makes sense.
here is the script so far.....
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
/*
* This variable is an array that has one index for each group to compute data for
* The values assigned are the MAX number that a user can select for each group.
*/
var CHECK_LIMIT=new Array();
CHECK_LIMIT[1]=3; /* array indexes coorespond to the value f */
CHECK_LIMIT[2]=2;
CHECK_LIMIT[3]=2;
window.onload = function()
{
addClickActionSecondBoxGroup('Package')
}
function addClickActionSecondBoxGroup(name)
{
var allBoxes = document.getElementsByName(name)
for (var i = 0; i < allBoxes.length; i++)
{
allBoxes[i].onclick= function() { togglePackage(this) }
}
}
function togglePackage(box)
{
var allBoxes = document.getElementsByName('Package')
for (var i = 0; i < allBoxes.length; i++)
{
if (box != allBoxes[i])
{
allBoxes[i].checked = false
}
}
}
/* The variable passed in (_obj) is the checkbox object that was clicked.
*/
function y(_obj) {
var count=0;
var current
for (var i=0;i<_obj.form[_obj.name].length;i++)
{
/* if it is checked -- count it */
if (_obj.form[_obj.name][i].checked)
count++;
// get index of current checkbox
if (_obj.form[_obj.name][i] == _obj)
{
if (_obj.name == "group1")
current = i
else if (_obj.name == "group2")
current = i + _obj.form["group1"].length
else
current = i + _obj.form["group1"].length + _obj.form["group2"].length
}
}
if(count>CHECK_LIMIT[_obj.getAttribute("f")])
{
_obj.checked=false;
window.alert("Too Many Selections in this Group");
}
var total=0;
for(var i=0;i<_obj.form.group1.length;i++)
{
if(_obj.form.group1[i].checked) {
total+=parseInt(_obj.form.group1[i].value);
}
}
for(var i=0;i<_obj.form.group2.length;i++)
{
if(_obj.form.group2[i].checked) {
total+=parseInt(_obj.form.group2[i].value);
}
}
for(var i=0;i<_obj.form.group3.length;i++)
{
if(_obj.form.group3[i].checked) {
total+=parseInt(_obj.form.group3[i].value);
}
}
_obj.form.total.value=total;
_obj.form["package"][current].disabled = !_obj.checked
}
function ValidateForm(fruit)
{
var numBoxes= 0;
for(i=0;i<fruit.group1.length; i++)
{
if (fruit.group1[i].checked)
{
numBoxes++;
}
}
for(i=0;i<fruit.group2.length; i++)
{
if (fruit.group2[i].checked)
{
numBoxes++;
}
}
for(i=0;i<fruit.group3.length; i++)
{
if (fruit.group3[i].checked)
{
numBoxes++;
}
}
if (numBoxes < 1){
alert("You Have Not Selected any Fruit!");
return false;
}
else if (numBoxes !== 7){
alert("You must select 7 Options");
return false;
}
else {
return true;
}
}
</script>
</SCRIPT>
<body>
<table>
<FORM name="fruit" onSubmit="return ValidateForm(this)">
<input type="checkbox" name="group1" f=1 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 1 <br>
<input type="checkbox" name="group1" f=1 value="45" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 2 <br>
<input type="checkbox" name="group1" f=1 value="60" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 3 <br>
<input type="checkbox" name="group1" f=1 value="24" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 4 <br>
<input type="checkbox" name="group1" f=1 value="70" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 5 <br>
<input type="checkbox" name="group1" f=1 value="35" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 6 <br>
<input type="checkbox" name="group1" f=1 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 7 <br>
<br>
<input type="checkbox" name="group2" f=2 value="5" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 1 <br>
<input type="checkbox" name="group2" f=2 value="15" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 2 <br>
<input type="checkbox" name="group2" f=2 value="20" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 3 <br>
<input type="checkbox" name="group2" f=2 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 4 <br>
<input type="checkbox" name="group2" f=2 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 5 <br>
<input type="checkbox" name="group2" f=2 value="90" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 6 <br>
<br>
<input type="checkbox" name="group3" f=3 value="5" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 1 <br>
<input type="checkbox" name="group3" f=3 value="15" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 2 <br>
<input type="checkbox" name="group3" f=3 value="20" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 3 <br>
<input type="checkbox" name="group3" f=3 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 4 <br>
<input type="checkbox" name="group3" f=3 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 5 <br>
<input type="checkbox" name="group3" f=3 value="90" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 6 <br>
<br>
Total Value:<input readonly onfocus="blur()" type="text" name="total" value="0" >
<br>
<INPUT type="submit" name="Submit" value="Submit">
</FORM>
</table>
</body>
I need to check whether a 'package' checkbox has been selected, and if not, alert the user.
Hope that makes sense.
here is the script so far.....
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
/*
* This variable is an array that has one index for each group to compute data for
* The values assigned are the MAX number that a user can select for each group.
*/
var CHECK_LIMIT=new Array();
CHECK_LIMIT[1]=3; /* array indexes coorespond to the value f */
CHECK_LIMIT[2]=2;
CHECK_LIMIT[3]=2;
window.onload = function()
{
addClickActionSecondBoxGroup('Package')
}
function addClickActionSecondBoxGroup(name)
{
var allBoxes = document.getElementsByName(name)
for (var i = 0; i < allBoxes.length; i++)
{
allBoxes[i].onclick= function() { togglePackage(this) }
}
}
function togglePackage(box)
{
var allBoxes = document.getElementsByName('Package')
for (var i = 0; i < allBoxes.length; i++)
{
if (box != allBoxes[i])
{
allBoxes[i].checked = false
}
}
}
/* The variable passed in (_obj) is the checkbox object that was clicked.
*/
function y(_obj) {
var count=0;
var current
for (var i=0;i<_obj.form[_obj.name].length;i++)
{
/* if it is checked -- count it */
if (_obj.form[_obj.name][i].checked)
count++;
// get index of current checkbox
if (_obj.form[_obj.name][i] == _obj)
{
if (_obj.name == "group1")
current = i
else if (_obj.name == "group2")
current = i + _obj.form["group1"].length
else
current = i + _obj.form["group1"].length + _obj.form["group2"].length
}
}
if(count>CHECK_LIMIT[_obj.getAttribute("f")])
{
_obj.checked=false;
window.alert("Too Many Selections in this Group");
}
var total=0;
for(var i=0;i<_obj.form.group1.length;i++)
{
if(_obj.form.group1[i].checked) {
total+=parseInt(_obj.form.group1[i].value);
}
}
for(var i=0;i<_obj.form.group2.length;i++)
{
if(_obj.form.group2[i].checked) {
total+=parseInt(_obj.form.group2[i].value);
}
}
for(var i=0;i<_obj.form.group3.length;i++)
{
if(_obj.form.group3[i].checked) {
total+=parseInt(_obj.form.group3[i].value);
}
}
_obj.form.total.value=total;
_obj.form["package"][current].disabled = !_obj.checked
}
function ValidateForm(fruit)
{
var numBoxes= 0;
for(i=0;i<fruit.group1.length; i++)
{
if (fruit.group1[i].checked)
{
numBoxes++;
}
}
for(i=0;i<fruit.group2.length; i++)
{
if (fruit.group2[i].checked)
{
numBoxes++;
}
}
for(i=0;i<fruit.group3.length; i++)
{
if (fruit.group3[i].checked)
{
numBoxes++;
}
}
if (numBoxes < 1){
alert("You Have Not Selected any Fruit!");
return false;
}
else if (numBoxes !== 7){
alert("You must select 7 Options");
return false;
}
else {
return true;
}
}
</script>
</SCRIPT>
<body>
<table>
<FORM name="fruit" onSubmit="return ValidateForm(this)">
<input type="checkbox" name="group1" f=1 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 1 <br>
<input type="checkbox" name="group1" f=1 value="45" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 2 <br>
<input type="checkbox" name="group1" f=1 value="60" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 3 <br>
<input type="checkbox" name="group1" f=1 value="24" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 4 <br>
<input type="checkbox" name="group1" f=1 value="70" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 5 <br>
<input type="checkbox" name="group1" f=1 value="35" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 6 <br>
<input type="checkbox" name="group1" f=1 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Option 7 <br>
<br>
<input type="checkbox" name="group2" f=2 value="5" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 1 <br>
<input type="checkbox" name="group2" f=2 value="15" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 2 <br>
<input type="checkbox" name="group2" f=2 value="20" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 3 <br>
<input type="checkbox" name="group2" f=2 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 4 <br>
<input type="checkbox" name="group2" f=2 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 5 <br>
<input type="checkbox" name="group2" f=2 value="90" onclick="y(this)">
<input type="checkbox" name="package" disabled >Bonus 6 <br>
<br>
<input type="checkbox" name="group3" f=3 value="5" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 1 <br>
<input type="checkbox" name="group3" f=3 value="15" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 2 <br>
<input type="checkbox" name="group3" f=3 value="20" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 3 <br>
<input type="checkbox" name="group3" f=3 value="25" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 4 <br>
<input type="checkbox" name="group3" f=3 value="50" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 5 <br>
<input type="checkbox" name="group3" f=3 value="90" onclick="y(this)">
<input type="checkbox" name="package" disabled >Free 6 <br>
<br>
Total Value:<input readonly onfocus="blur()" type="text" name="total" value="0" >
<br>
<INPUT type="submit" name="Submit" value="Submit">
</FORM>
</table>
</body>