# JS: alle Checkboxen aktivieren



## Raven280438 (31. August 2007)

Hi,

ich hab eine kleine Funktion geschrieben, die mit einem Klick auf eine Checkbox alle anderen Checkboxen aktivieren soll.


```
function selectall(anzahl) {
	var j = 1;
	var max = j + anzahl;
	while (j <= max) {
		if (document.select_alles.sel_check.checked == true)
			document.select_alles.elements[j].checked = true;
		else
			document.select_alles.elements[j].checked = false;
		j++;
	}
}
```

Das Form heist select_alles und die Checkbox select_alles.

Leider kommt immer die Fehlermeldung:
document.select_alles.select_alles ist Null oder kein Objekt

Kann mir jemand weiterhelfen?


----------



## ValentinS (31. August 2007)

Probiers halt einfach mal mit unterschiedlichen Namen für Form und Elemente ;-)

Bei mir sieht die Funktion so aus:


```
function select_all( bChecked ) 
{
	for ( i = 0; i <= document.getElementsByName("checkboxes").length; i++ )
	{
		document.getElementsByName("checkboxes")[i].checked = bChecked;
	}
}
```


----------



## Quaese (31. August 2007)

Hi,

ich gehe mal davon aus, dass eine in *anzahl* übergebene Anzahl an Boxen ausgewählt werden sollen. Mit
der Bedingung *j <= max* werden jedoch *anzahl+1* Werte bearbeitet, wobei es den letzten eventuell nicht 
mehr gibt. Versuch also mal eine Überprüfung auf kleiner.

```
while (j < max)
```
Vielleicht hilft dir das weiter.

Ciao
Quaese


----------



## Raven280438 (31. August 2007)

ok das funktioniert jetzt, vielen Dank euch beiden.

Noch ein kleines Problem:

ich möchte in einer Funktion ein Formular absenden lassen.
name='checkboxes'
id='goto_form'

ich hab mehrere Sachen probiert, aber es kommen immer Fehlermeldungen.

document.getElementById("goto_form").submit();
document.getElementsByName("checkboxes")[0].submit();
document.getElementsByName("checkboxes").submit();
document.goto_form.submit();

Hab leider nicht soo viel Ahnung von JS


----------



## Thurstan (31. August 2007)

Wie du richtig gesagt hast - du willst das Formular absenden - nicht die Buttons - die Buttons kommen in den Form-Tag...und diesen sprichst du an und schickst ihn ab:


```
<form name="Testform" action="datei.htm" method="get">
    // deine Checkboxen
</form>

<script type="text/javascript">
function AbGehts () {
  document.Testform.submit();
}
</script>
```

Gruß


----------



## Raven280438 (31. August 2007)

ich habs mit document.checkboxes.submit(); probiert, aber das geht auchnicht.
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.


----------



## Thurstan (31. August 2007)

aso dein Formular hat den Namen: checkboxes ?

poste mal deinen Code - dann sieht man es besser.


----------



## Raven280438 (31. August 2007)

Naja der Quellcode is ziemlich komplex, ich versuche mal das wichtigeste zu posten:


```
//die Javascript Funktion
function check_do(aktion) {
	document.getElementById("goto_open").value = aktion;
	document.checkboxes.submit();
}
```


```
<form action='index.php' method='post' name='checkboxes' style='display:inline' id='goto_form'>
<input type='hidden' name='open' value='' id='goto_open' />

[...] //Hier werden verschiebene Checkboxes erstellt

<input type='button' OnClick=\"javascript:check_do('delete')\" value='Löschen' class='mails_optionsleiste_button' />&nbsp;
<input type='button' OnClick=\"javascript:check_do('move')\" value='Verschieben' class='mails_optionsleiste_button' />&nbsp;
```

Hintergrund:
Ich möchte mit alle Nachrichten, bei denen die Checkbox aktiviert ist, verschiedene Aktionen durchführen, z.B. löschen oder verschieben. Deshalb die Funktion. Der Inhalt der Variable $open gibt die Aktion an die durchgeführt werden soll.


----------



## Sven Mintel (31. August 2007)

Ich würde mal darauf tippen: http://www.tutorials.de/forum/webmaster-faq/218365-warum-funktioniert-bei-mir-submit-nicht.html


----------



## Raven280438 (31. August 2007)

nein leider nicht 

Die Fehlermeldung ist 
document.checkboxes ist Null oder kein Objekt. Aber ich habe den Namen des Form's gesetzt.


----------



## Sven Mintel (31. August 2007)

Dann ist dir nicht zu Helfen, es sei denn, du postest den gesamten Quelltext


----------



## uwe75-1 (15. September 2007)

Hallo,

ich habe da auch so meine Probleme mit "alle Checkboxen" aktivieren:
Ich möchte auf meine Homepage Bilder zum Download zur Verfügung stellen. Es besteht die Möglichkeit die Bilder in einer wählbaren Qualität herunterzuladen, z.B. Hohe / niedrige Qualität. Mit Hilfe der For Schleife wird bei Erzeugung der Galerie gleichzeitig 2 Checkboxen je Bild erzeugt (Hohe / Niedrige Qualität), die Werte werden alle in das selbe Array geschrieben. nun hätte ich gern 2 Checkboxen, die "alle" anderen Checkboxen auswählen - zum einen "alle auswählen in niedriger Qualität" und "alle auswählen in hoher Qualität"
Das Javascript für "Alle Checkboxen auswählen" habe ich schon gefunden - funktioniert auch, aber nicht, wenn ich zwei solcher "Alle Auswählen Checkboxen" einbinde, da diese sich natürlich auch gegenseitig auch auswählen.  Wie kann ich dieses Problem lösen?

Vielen Dank schon mal im Voraus


----------



## Quaese (15. September 2007)

Hi,

du müsstest irgendein Entscheidungskriterium haben, anhand dessen du unterscheiden kannst, welcher
Gruppe (hoch/tief) die Checkbox angehört. Im Beispiel habe ich einen Klassenname zur Unterscheidung
verwendet.

```
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function checkBoxes(objBox, strClass){
  var arrBoxes = document.getElementsByTagName("input");
  var strPattern = eval("/"+strClass+"/");

  // Array durchlaufen
  for(var i=0; i<arrBoxes.length; i++){
    // Falls es sich um eine Checkbox handelt, die den passenden Klassennamen besitzt
    if((arrBoxes[i].type.toLowerCase() == "checkbox") && (arrBoxes[i].className.search(strPattern) != -1 )){
      arrBoxes[i].checked = objBox.checked;
    }
  }
}
 //-->
</script>
</head>
<body>
<form>
  <div>
    <input type="checkbox" onclick="checkBoxes(this, 'quali-hoch');" value="">alle hoch<br>
    <input type="checkbox" onclick="checkBoxes(this, 'quali-niedrig');" value="">alle niedrig
  </div>
  <div>
    <input type="checkbox" name="n1" class="quali-hoch" value="1">hoch<br>
    <input type="checkbox" name="n1" class="quali-niedrig" value="2">niedrig<br>

    <input type="checkbox" name="n2" class="quali-hoch" value="3">hoch<br>
    <input type="checkbox" name="n2" class="quali-niedrig" value="4">niedrig<br>

    <input type="checkbox" name="n3" class="quali-hoch" value="5">hoch<br>
    <input type="checkbox" name="n3" class="quali-niedrig" value="6">niedrig
  </div>
</form>
</body>
</html>
```
Ciao
Quaese


----------



## uwe75-1 (16. September 2007)

Hallo Quaese,

vielen vielen Dank für deine Hilfe - funktioniert super und wieder was dazu gelernt.

Schönes Wochenende noch

viele grüße


----------

