Checkboxen mit bestimmter ID 'checken' (nicht über den Namen!)

sam

Erfahrenes Mitglied
Hi JS'ler,

Ist es möglich alle Checkboxen mit einer
bestimmten ID (kann auch eine Variable
enthalten, z.B. check1-check20) zu
aktivieren bzw. zu deaktivieren?
Ich hab schon versucht ein bisschen was
zu basteln, aber bis auf JavaScriptfehler
kommt dabei nichts raus...
Mit dem name-Attribut ist das so schön
einfach, aber das ist leider bei jeder
Checkbox verschieden und kann auch
nicht geändert werden :(
Ideen? :rolleyes:

mfg
sam
 
Hi,

ist die Id irgendwie "errechenbar"? Also irgendwei Prefix + Laufender Nummer?
Wenn ja, dann könnte man evtl was machen, ansonsten wirds schlecht...
Es sei denn, es sind die einzigen Checkboxen in dem Formular :)


bye
 
Zuletzt bearbeitet:
Ich bins nochmal,

schau mal das Beispiel an, wenn du weist wieviele Elemente es sind, funktionierts so, ansonsten musst du dir noch was einfallen lassen (und bitte Posten)

ciao
 

Anhänge

Sorry - ich weis Doppelposts sucken - dreifach Posts erst recht - kommt nicht mehr vor, aber ich hatte eine Idee :)

die neue Version:
PHP:
<html>
<head>
<script language="JavaScript" type="text/javascript">

var status=0;

function checkall()
{
  var x=0;

  for(i=0; i<document.test.length; i++){
    if(document.test.elements[i].type == 'checkbox'){
      x++;
    }
  }
  if(status==0){
    for(i=1;i<x+1;i++){
      document.getElementById("check"+i).checked = true;
    }
    document.test.checkbutton.value ="uncheck all";
    status=1;
  }
  else
  {
    for(j=1;j<x+1;j++){
      document.getElementById("check"+j).checked = false;
    }
    document.test.checkbutton.value ="check all";
    status=0;
  }
}
</script>
</head>
<body>
<form name="test"> 
  <input type="checkbox" name="a" id="check1" />
  <input type="checkbox" name="b" id="check2" />
  <input type="checkbox" name="c" id="check3" />
  <input type="checkbox" name="d" id="check4" />
  <input type="checkbox" name="e" id="check5" />
  <input type="checkbox" name="f" id="check6" />
  <input type="checkbox" name="g" id="check7" />
  <input type="checkbox" name="h" id="check8" />
  <input type="button" name="checkbutton" id="checkbutton" onClick="checkall()" value="check all">
</form>
</body>
</html>

bye
 
Ich hab doch gewusst, dass man sich auf
euch/dich verlassen kann :rolleyes:
Dass es eine Variable enthalten darf, habe
ich ja versucht zu erklären, weil ich mir
schon gedacht habe, dass es nicht anders
geht ;)

mfg
sam
 
@ Crono:
jetzt muss ich doch glatt nochmal nachhaken. Funktioniert dieser Aufruf document.getElementById("check"+i).checked = true; immer, auch wenn z.b. dieser Checkboxteil in einer Table liegt?

Und müsste nicht dieses auch gehen?
PHP:
document.all.check1.checked = true;

Vielleicht kannst du oder natürlich auch jemand anderes mir weiter helfen. Big .
 
Hallo,

Soweit ich weis, ist es egal getElementById egal wo das teil liegt, da die Id ja sowieso einzigartig im Dokument sein muss.
Document.all verwende ich grundsätzlich nicht, da das IE only syntax ist. document.all.check1.checked = true; sollte aber trotzdem funktionieren, geht ab am ursprünglichen Problem vorbei - es war ja gefragt wie man alle Checkboxen checken kann, auch wenn vorher nicht klar ist wieviele es sein werden...

bye
 
ja ist klar, mein Problem ist auch nur so ähnlich (also nicht unbestimmte anzahl von Checkboxen, aber mit gezielten checken/unchecken von einzelnen Checkboxen) und deswegen schien mir ein posten in diesem thread als sinnvoller als einen neuen zu öffnen.

ich habe auf jedenfall verschiedene ids für die checkboxen benutzt... sehr komisch.
trotzdem danke für die schnelle antwort.
 
Wenn du geziehlt checken willst ist´s gar kein problem - da muss es gar nicht so aufwendig werden...

Wenn das Formular so
Code:
  <form name="bla">
   <input type="checkbox" name="box1">
   <input type="checkbox" name="box2">
  </form>
aufgebaut ist, dann kannst du das ganze über:
Code:
document.bla.box1.checked = true;
ansprechen - da kannst dir sogar die ID sparen...

bye
 
Also ich hab jetzt mal ein neues html mit deinem Source erzeugt um sicher zu gehen, dass ich nicht noch wo anders einen fehler habe, denn z.B. den Wert für die Variable probe bekomme ich über den URL zurück. Das funktioniert auch, aber trotzdem sicher ist sicher, deshalb habe ich einfach mal einen festen Wert im Javascript-Teil vergeben.

Wenn ich die Seite aufrufe bekomme ich folgenden Fehler:
PHP:
Zeile: 6
Fehler: 'document.bla.box1' ist Null oder kein Objekt

Mein Javascript Teil:
PHP:
<script language="JavaScript" type="text/javascript">
	var probe = "box1";
	switch (probe) {
		case "box1":
			document.bla.box1.checked = true;
			break;
		case "box2":
			document.bla.box2.checked = true;
			break;
	}

</script>

Und der Body Teil:
PHP:
<form name="bla">
   <input type="checkbox" name="box1">box1<br/>
   <input type="checkbox" name="box2">box2
  </form>

Macht es einen Unterschied ob der Name in Anführungszeichen steht oder nicht?
 

Neue Beiträge

Zurück