Checkbox Counter

Thomas_Jung

Erfahrenes Mitglied
Hallo
Kann mir jemand dabei helfen das Script zum laufen zu bringen.
Ohne Klammern [] läuft es prima. Ich brauche es aber mit Klammern []
Gruß Thomas

Code:
<script Language="JavaScript">
<!--
function checker()
{
var checkbox_choices = 0;
for (counter = 0; counter < checkbox_form.checkbox.length; counter++)
{
if (checkbox_form.checkbox[counter].checked)
{ checkbox_choices = checkbox_choices + 1; }
}
if (checkbox_choices > 3 )
msg="Bitte nur 3\n"
alert(msg)
return (false);
}

if (checkbox_choices < 3 )
{

alert("Min 3")
return (false);
}

alert(" Alles OK");
return (true);
}

-->
</script>


<form method="get" action="#" onsubmit="return checker()" name="checkbox_form">
<input type="checkbox" value="name" name="checkbox[]">name<br>


<input type="submit" value="Submit">
</form>
 
Es geht auch per
Code:
checkbox_form.elements['checkbox[]']
Die von Gumbo genannte DOM-Methode ist jedoch vorzuziehen, da meine und deine Variante, die Checkboxen anzusprechen, im IE fehlschlägt, wenn du nur eine einzige checkbox hast.
 
Hallo Gumbo
Habe es mal mit getElementsByName() Methode probiert.
Klappt aber nicht so wie ich mir das vorstelle.
Kannst du mit da weiterhelfen?
Gruß Thomas

Code:
<script Language="JavaScript">
<!--
function checker()
{
var checkbox_choices = 0;


for (counter = 0; counter < document.getElementsByTagName('loeschen[]'); counter++)
{
if (document.getElementsByTagName('loeschen[]').checked)
{ checkbox_choices = checkbox_choices + 1; }
}
if (checkbox_choices > 3 )
{
msg="Max 3.\n"

alert(msg)
return (false);
}
if (checkbox_choices < 3 )
{
alert("Min 3.")
return (false);
}
alert("OK");
return (true);
}
-->
</script>
<form method="get" action="#" 
onsubmit="return checker()" name="checkbox_form">
<input type="checkbox" value="Name" name="loeschen[]">Name<br>
<input type="checkbox" value="Name" name="loeschen[]">Name<br>
<input type="submit" value="Submit">
</form>
 
Probier mal Folgendes:
Code:
function checker()
{

	var checkbox_choices = 0;
	var checkboxElements = document.getElementsByName('loeschen[]');
	for(var i=0; counter<checkboxElements.length; i++) {
		if( checkboxElements[i].checked ) {
			checkbox_choices++;
		}
	}
	if( checkbox_choices > 3 ) {
		alert("Max 3.\n";
		return false;
	}
	if( checkbox_choices < 3 ) {
		alert("Min 3.");
		return false;
	}
	alert("OK");
	return true;

}
 
Hallo Gumbo

Erhalte die logische Fehlermeldung counter ist undefiniert.
Aber wie muß ich counter definieren mit var counter=0; funktioniert nicht.

Ich liebe Javascript :(
Gruß Thomas

Code:
<script Language="JavaScript">
<!--
function checker()
{


	var checkbox_choices = 0;
	
		
	var checkboxElements = document.getElementsByTagName('loeschen[]');
	

	
	for(var i=0;  counter<checkboxElements.length; i++) {
	  if( checkboxElements[i].checked ) {
			checkbox_choices++;
		}
	}
	if( checkbox_choices > 3 ) {
		alert("Max 3.\n");
		return false;
	}
	if( checkbox_choices < 3 ) {
		alert("Min 3.");
		return false;
	}
	alert("OK");
	return true;

}
-->
</script>
<form method="get" action="#" 
onsubmit="return checker()" name="checkbox_form">
<input type="checkbox" value="Name" name="loeschen[]">Name<br>
<input type="checkbox" value="Name" name="loeschen[]">Name<br>
<input type="checkbox" value="Name" name="loeschen[]">Name<br>

<input type="submit" value="Submit">


</form>
 
Mein Fehler, ich verwende die getElementsByTagName()-Methode häufiger als die getElementsByName()-Methode und schreibe daher die erstere oft instinktiv.
 

Neue Beiträge

Zurück