954,597 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Javascript checkbox validation

Hi,

How do i check if any of these checkboxs are selected. If nothing is selected then invalidate the form. Javascript

thanks

<input type="checkbox" name="MYcheckbox[]" value="0">
<input type="checkbox" name="MYcheckbox[]" value="1">
<input type="checkbox" name="MYcheckbox[]" value="2">
<input type="checkbox" name="MYcheckbox[]" value="3">
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

You can iterate trough forum controls with Javascript

var i;
for(i=1;i<18;i++) {
      document.formPermissions.elements[i].checked = 1;
}
brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

I couldn't do it. I generate those checkboxes by php and store values in them. name="MYcheckbox[]".
As i am a new person in jScript, i need help.

Thanks

veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

What you need to do in PHP is give each checkbox an individual ID then,
as in:

echo "<input type='checkbox' id='checkbox".$i."' name='".$checkboxName."'>&nbsp;</input>";


Now you can iterate trough them in javascript by doing this:

var i;
var isItChecked;
for(i=0;i<9;i++) {
   isItChecked = document.myFormName.elements[i].checked;

}


Hope this helps ^^
brecht

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

Ok i'll try that way. Thank you

veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

Only when there are more than one DOM objects with the same ID, the DOM treats that as an array, it says in a web side. This is exactly what i try to do, but i couldn't find any.

veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

I should stop writing my posts so late, anyway
Looking back at my previous post I don't even think you HAVE to give them a unique ID to be able to iterate trough them. ID is there to give each element a unique identifier though, I cannot locate that site you talk of, maybe you can point me to it so I can read up on that. Anyway, if you could give me a piece of code I could try and help with that, see where that goes.

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

I want to add a javascript to check if any checkbox is selected or not.
Thanks

<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<form name="form1" method="post" action="save.php">
<table>
	<tr>
		<td>ID</td>
		<td>COUNTRY</td>
		<td>Unit</td>
		<td>&nbsp;</td>
	</tr>
<?php
$connection=mysql_connect("localhost", "root", "");
if ($connection) {
	mysql_select_db("phptest", $connection);
} else {
	echo "Database connection was failed";
	exit();
}	

$sql="SELECT id, name FROM country_1";
$runSql=mysql_query($sql);

if (@mysql_num_rows($runSql)>0) {
	while ($newArray=mysql_fetch_array($runSql)) {
?>
	<tr>
		<td><?php echo $newArray['id']; ?></td>
		<td><?php echo $newArray['name']; ?></td>
		<td><input type="textbox" name="textboxUnit[<?php echo $newArray['id']; ?>]" value=""></td>
		<td><input type="checkbox" name="checkboxCountry[<?php echo $newArray['id']; ?>]" value="<?php echo $newArray['id']; ?>"></td>
	</tr>
<?php
	}
}
?>
</table>
</form>
</body>
</html>
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 
onclick="if(this.checked == 1) { alert('checked: '+<? echo $newArray['id'];?>); }"


Hopefully this is what you want : - )

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

Sorry that is my mistake. I meant to put a submit button to validate checkboxes in a javascript fuction. If anything is checked then return true, otherwise return false.

Thanks

veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 
function checkCheckBoxes() {
    var i;
    var isOneChecked = false;
    for(i=0;i<5;i++) {
      if(checkBoxCountry[i].checked) {
        isOneChecked = true;
      }
    }
    return isOneChecked;
  }
<input type="submit" onclick="alert(checkCheckBoxes())" value="Submit">


This should work. If you want to make it dynamic you can do that with PHP.

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

Didn't work. Can we not modify this one?
Thanks

function checkCheckBoxes() {    
	var counter;
	var selectedCheckbox = 0;
	
	for (counter = 0; counter < form1.checkboxCountry.length; counter++) {
		if (form1.checkboxCountry[counter].checked) { 
			selectedCheckbox = selectedCheckbox + 1; 
		}
	}
	if (selectedCheckbox == 0 ) {
		alert("Please make selections.");
		return (false);
	}
	}
<form name="form1" method="post" action="save.php" onSubmit="return checkCheckBoxes();">
.......
<input type="checkbox" name="checkboxCountry[<?php echo $['id']; ?>]" value="<?php echo $new['id']; ?>">
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

Excuse me, my previous post was indeed nonsense. This on the other hand should work:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<script type="text/javascript">
			function checkCheckBoxes(formName) {
			    var i;
			    var numberOfChecked = 0;
				
			    for(i=0;i<5;i++) {
					if(formName.elements['checkBoxCountry['+i+']'].checked) {
						numberOfChecked++;
					}
			    }
			    return numberOfChecked;
			  }
		</script>
	</head>
	
	<body>
		<form name="myForm">
			<input type="checkbox" name="checkBoxCountry[0]"></input>
			<input type="checkbox" name="checkBoxCountry[1]"></input>
			<input type="checkbox" name="checkBoxCountry[2]"></input>
			<input type="checkbox" name="checkBoxCountry[3]"></input>
			<input type="checkbox" name="checkBoxCountry[4]"></input>
			<input type="submit" onclick="alert('Number of checked checkBoxes: ' + checkCheckBoxes(myForm))" value="Submit">
		</form>
	</body>
</html>


Good luck

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

hi friends i need one cgi example program pls send me

npandu_24
Newbie Poster
2 posts since Nov 2008
Reputation Points: 10
Solved Threads: 1
 

Hi brechtraj,

I works fine in html but, as long as i use it php, it doesn't work. Do you think i do mistake below?

thanks

<input type="checkbox" name="checkboxDicode[<?php echo $new['studentId']; ?>]" value="<?php echo $new['studentId']; ?>">
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

That depends on what's in $new['studentId']. Is it a number? I'm guessing it is, and how many do you have, in my example there are 5 checkboxes in the form. If your studentId's follow each other up like this:
1, 2, 3
and not like:
3, 34, 55, 56, 57

You can probably change this Javascript:

function checkCheckBoxes(formName) {
			    var i;
			    var numberOfChecked = 0;
				
			    for(i=0;i<5;i++) {
					if(formName.elements['checkBoxCountry['+i+']'].checked) {
						numberOfChecked++;
					}
			    }
			    return numberOfChecked;
			  }


to this:

function checkCheckBoxes(formName) {
			    var i = 0;
			    var numberOfChecked = 0;
				
			    while(formName.elements['checkBoxCountry['+i+']']) {
					if(formName.elements['checkBoxCountry['+i+']'].checked) {
						numberOfChecked++;
					}
					i++;
			    }
			    return numberOfChecked;
			  }


EDIT: code tested and should work
Hope this helps you ^^

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

Yes you are rigth. checkBoxCountry has unknown numbers and strings. An example below. How can we do it?

Thanks

<input type="checkbox" name="checkBoxCountry[01SW]"></input>
<input type="checkbox" name="checkBoxCountry[A22]"></input>
<input type="checkbox" name="checkBoxCountry[BX2L]"></input>
<input type="checkbox" name="checkBoxCountry[11OX]"></input>
<input type="checkbox" name="checkBoxCountry[41W]"></input>
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

What you could do is give each checkbox an ID and go by that ID instead of the name, then you can get the name of that checkbox because you have it's ID:

<input type="checkbox" id="checkBox1" name="checkBoxCountry[01SW]"></input>
<input type="checkbox" id="checkBox2" name="checkBoxCountry[A22]"></input>
<input type="checkbox" id="checkBox3" name="checkBoxCountry[BX2L]"></input>
<input type="checkbox" id="checkBox4" name="checkBoxCountry[11OX]"></input>
<input type="checkbox" id="checkBox5" name="checkBoxCountry[41W]"></input>


If you have any questions just reply, I don't have much time to react now I'm sorry

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

Brectjah,
I think i have to buy a book and study JavaScript. It is solved by all your help. Thank you very much.

<script type="text/javascript">
function validate() {
var count=this.form2.elements;
var i;
var selectedCheckbox = 0;
   for(i=0;i<count.length;i++) {
	if(document.form2.elements[i].checked) {
		selectedCheckbox = selectedCheckbox + 1; 
	}
   }
   if (selectedCheckbox == 0 ) {
	alert ("Please select at least one student");
	return false;
   }

return true;
}

<form name="form2" action="s.html" onSubmit="return validate();">
<input type="checkbox" id="ch0" name="checkBoxCountry[0]"></input>
<input type="checkbox" id="ch1" name="checkBoxCountry[122]"></input>
<input type="checkbox" id="ch2" name="checkBoxCountry[2sx]"></input>
<input type="checkbox" id="ch3" name="checkBoxCountry[3ww]"></input>
<input type="checkbox" id="ch4" name="checkBoxCountry[41]"></input>
<input type="submit" value="Submit">
</form>
veledrom
Master Poster
758 posts since Apr 2008
Reputation Points: 42
Solved Threads: 0
 

Great to hear that! :)
Good luck on learning Javascript

brechtjah
Junior Poster in Training
92 posts since Nov 2008
Reputation Points: 26
Solved Threads: 9
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You