Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

Checkboxen





Frage

Hallo! Ich habe 9 Checkboxen, von denen nur eine vorselektiert ist (Name der vorselektierten:alles). Die anderen sind nicht vorselektiert. Jetzt möchte ich, dass wenn ein Benutzer auf eine der anderen 8 Checkboxen klickt, die Selektion von "alles" deaktiviert wird (also nicht mehr selektiert ist. Wie mache ich das? Danke! Tommi

Antwort 1 von semi

So ungefähr?
Es verhält sich aber etwas doof. :)

<html>
<head>
<script type="text/javascript">
<!--
function doCheck(c) {
  var form = document.forms[0];
  form.alle.checked = form.alle.checked && !c.checked;
}
-->
</script>
</head>
<body>
<form>
  <input type=checkbox name="a" onClick="doCheck(this);">A
  <input type=checkbox name="b" onClick="doCheck(this);">B
  <input type=checkbox name="c" onClick="doCheck(this);">C
  <input type=checkbox name="d" onClick="doCheck(this);">D
  <input type=checkbox name="alle" checked>Alle
</form>
</body>
</html>
Besser wäre sowas
function doCheck(c) {
var form = document.forms[0];
if(c.name == "alle") {
form.a.checked = form.a.checked || c.checked;
form.b.checked = form.b.checked || c.checked;
form.c.checked = form.c.checked || c.checked;
form.d.checked = form.d.checked || c.checked;
}
else
{
form.alle.checked = form.alle.checked && c.checked;
}
}

Gruß,
Michael

Antwort 2 von Dr.Ma-Busen

Moin!

Hier hast du noch ein Beispiel
<html>
<head>
<script type="text/javascript">
<!--
var ch_co = 0;
function change(id){
	if(id.name != "alles"){
		if(id.checked){
			ch_co++;
			}else{ch_co--}
		if(ch_co == 0){
			document.forms["form"].alles.checked = true;
		}else{
			document.forms["form"].alles.checked = false;
			}

		}else{
			if(ch_co != 0){id.checked = false}
	}
}
//-->
</script>
</head>
<body>
<form method="post" id="form">
	<input type="checkbox" name="box_1" onClick="change(this)"><br>
	<input type="checkbox" name="box_2" onClick="change(this)"><br>
	<input type="checkbox" name="box_3" onClick="change(this)"><br>
	<input type="checkbox" name="alles" checked onClick="change(this)">alles<br>
</form>
</body>
</html>


MfG
Dr. Ma-Busen

Antwort 3 von Tommi23

Das geht ja schon in die richtige Richtung, Danke euch beiden :-))). Jetzt muss ich es nur noch hinbekommen, dass wenn man auf "alles" klick, die anderen Kästchen wieder deaktiviert werden. Habt ihr vielleicht ne Idee. JS ist für mich Neuland :-(.

Tommi

Antwort 4 von Dr.Ma-Busen

Mahlzeit!

Ersetze mal in den Beispiel von mir den ganze JavaScript Code durch folgenden:
Durch folgendes:
var elemList = new Array();
var co = 0;
function change(id){
		
		if(id.name != "alles"){
			if(typeof elemList[id.name] == 'undefined'){
				co++;
				elemList[id.name] = id;
			}else if(elemList[id.name]){
				co--;
				delete elemList[id.name];
				}			
		}else{
			for(var elem in elemList){
				elemList[elem].checked = false;
				delete elemList[elem];
				co = 0;
				}
			}
		if(co == 0){
			document.forms["form"].alles.checked = true;
		}else{
			document.forms["form"].alles.checked = false;
		}
}

Dann sollte es so deinen Wünschen entsprechend funktionieren ;)

MfG
Dr.Ma-Busen

Antwort 5 von Tommi23

Echt Klasse, genau so wollte ich es. Kann gar nicht genug Danken!!!!!!!!

Vielen Dank!!!

Tommi

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: