# Mehrere Checkboxen per Button aktivieren



## MiLa (9. Januar 2004)

Haudihau 
Nu mache ich auch mal das JavaScript Forum unsicher.

Ich habe mir ein kleines Rechtesystem gebastelt, nun möchte ich die Rechte wie folgt vergeben:


```
<table>
	<tr>
		<td>Modul</td>
		<td>Registriert</td>
		<td>Hinzufügen</td>
		<td>Bearbeiten</td>
		<td>Löschen</td>
	</tr>
	<tr>
		<td>news</td>
		<td><input  type="checkbox" value="1" name="read_0"></td>
		<td><input  type="checkbox" value="1" name="add_0"></td>
		<td><input  type="checkbox" value="1" name="edit_0"></td>
		<td><input  type="checkbox" value="1" name="del_0"></td>
	</tr>
	<tr>
		<td>gbook</td>
		<td><input  type="checkbox" value="1" name="read_3"></td>
		<td><input  type="checkbox" value="1" name="add_3"></td>
		<td><input  type="checkbox" value="1" name="edit_3"></td>
		<td><input  type="checkbox" value="1" name="del_3"></td>
	</tr>
	<tr>
		<td>forum</td>
		<td><input checked type="checkbox" value="1" name="read_6"></td>
		<td><input  type="checkbox" value="1" name="add_6"></td>
		<td><input  type="checkbox" value="1" name="edit_6"></td>
		<td><input  type="checkbox" value="1" name="del_6"></td>
	</tr>
	<tr>
		<td>voting</td>
		<td><input  type="checkbox" value="1" name="read_8"></td>
		<td><input  type="checkbox" value="1" name="add_8"></td>
		<td><input  type="checkbox" value="1" name="edit_8"></td>
		<td><input  type="checkbox" value="1" name="del_8"></td>
	</tr>
	<tr>
		<td>community</td>
		<td><input checked type="checkbox" value="1" name="read_9"></td>
		<td><input  type="checkbox" value="1" name="add_9"></td>
		<td><input  type="checkbox" value="1" name="edit_9"></td>
		<td><input  type="checkbox" value="1" name="del_9"></td>
	</tr>
	<tr>
		<td>logs</td>
		<td><input  type="checkbox" value="1" name="read_10"></td>
		<td><input  type="checkbox" value="1" name="add_10"></td>
		<td><input  type="checkbox" value="1" name="edit_10"></td>
		<td><input  type="checkbox" value="1" name="del_10"></td>
	</tr>
	<tr>
		<td>settings</td>
		<td><input  type="checkbox" value="1" name="read_12"></td>
		<td><input  type="checkbox" value="1" name="add_12"></td>
		<td><input  type="checkbox" value="1" name="edit_12"></td>
		<td><input  type="checkbox" value="1" name="del_12"></td>
	</tr>
	<tr>
		<td>statistik</td>
		<td><input  type="checkbox" value="1" name="read_17"></td>
		<td><input  type="checkbox" value="1" name="add_17"></td>
		<td><input  type="checkbox" value="1" name="edit_17"></td>
		<td><input  type="checkbox" value="1" name="del_17"></td>
	</tr>
	<tr>
		<td>artikel</td>
		<td><input  type="checkbox" value="1" name="read_13"></td>
		<td><input  type="checkbox" value="1" name="add_13"></td>
		<td><input  type="checkbox" value="1" name="edit_13"></td>
		<td><input  type="checkbox" value="1" name="del_13"></td>
	</tr>
</table>
```

Jetzt ist es doch ein wenig mühsam, jede Checkbox einzeln anzuklicken, nun wollte ich mal fragen, wie/ob es möglich ist dass man mehrere Checkboxen über einen Button oder eine Checkbox aktiviert?


----------



## Dick Starbuck (9. Januar 2004)

Hallo,

probiers mal mit dieser Funktion:

```
<script>
<!-- 
    function CheckAll()
    {
    var ml = document.messageList;
    var len = ml.elements.length;
    
    for (var i = 0; i < len; i++) 
      {
        var e = ml.elements[i];
        e.checked = true;
      }
    }
 -->
</script>
```
Es gibt wahrscheinlich noch bessere Möglichkeiten, aber das funktioniert eigentlich ganz gut. 

Gruß, Dick


----------



## MiLa (9. Januar 2004)

Ok, danke...
Werd ich gleich mal ausprobieren.
Aber was ist jetzt, wenn ich meinetwegen alle aus einer Reihe, oder alle aus einer Spalte markieren möchte?


----------



## Dick Starbuck (9. Januar 2004)

Hier ist nochmal was komplettes, was auch direkt wieder alle demarkiert. Die Selektion der zu markierenden Boxen läuft über deren Namen.

Hier findest du etwas darüber, die Namen individuell anzupassen, sodass du deine eigenen Namen verwenden und doch mehrere Boxen gleichzeitig anwählen kannst.

```
<script type="text/javascript" language="JavaScript">
<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return " keine "; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return " alle "; }
}
//  End -->
</script>

<form name="" action="" method="post">

  <input type="checkbox" name="list" value="1"> 1<br />
  <input type="checkbox" name="list" value="2"> 2<br />
  <input type="checkbox" name="list" value="3"> 3<br />
  <input type="checkbox" name="list" value="4"> 4<br />
  <input type="checkbox" name="list" value="5"> 5<br /><br />

  <input type="checkbox" value=" alle " onClick="this.value=check(this.form.list)"> Alle

</form>
```


----------



## Sven Mintel (9. Januar 2004)

Hallo....

oder probiers hiermit:

```
<script type="text/javascript">
<!--
function check_boxes(e,o,id)
{
frm=document.forms[0];
patterns=new Array();
patterns['a']=/^(read|add|edit|del)_\d+$/;
patterns['r']=eval('/^(read|add|edit|del)_'+id+'$/');
patterns['c']=eval('/^'+id+'_\\d+$/');
for(i=0;i<frm.elements.length;++i)
 {
 eName=frm.elements[i].name;
 if(frm.elements[i].type=='checkbox'&&eName.match(patterns[o]))
   {
   frm.elements[i].checked=e;
   }
 }
}
//-->
</script>
```
die Funktion erwartet 3 Parameter,

true/false
...jenachdem, ob die boxes an oder ausgeschaltet werden sollen
'a','c','r'
....'a'->alle
....'r'->Reihe
....'c'->Spalte
eine ID,
.....entweder die Nummer der Reihe(wie im Namen der Checkbox angegeben)
....oder die Berechtigung,('read','add','edit' oder 'del')
ist der 2te Parameter "a", notiere hier einfach ''

Beispiele:

check_boxes(true,'a','');
...alle markieren
check_boxes(true,'r',12);
...Reihe 12 markieren
check_boxes(false,'c','add');
...Markierungen in Spalte "hinzufügen" aufheben
check_boxes(false,'a','');
...alle Markierungen aufheben

ich hoff,'s hilft


----------



## MiLa (10. Januar 2004)

Boah, Super! 
Vielen Dank!  

Es funktioniert super...
...bis auf eine Sache: check_boxes(false,'c','add');

Da macht er bei mir nichts, genauso wenn ich das mit true mache. Also wenn ich irgendwas über eine Spalte machen möchte, streikt das ding.
Ich hab leider keinen Fehler gefunden, bin ja auch nicht so der JavaScripter.


----------



## Sven Mintel (10. Januar 2004)

Das ist ja nicht schön, ich kanns mir allerdings auch nicht erklären.
Was für'n Browser benutzt du denn.... bei mir klappts mit allen, die ich installiert habe?

Ich habs zum Vergleich mal hochgeladen....vielleicht hat sich ja nur nen kleiner Tippfehler eingeschlichen.


----------



## MiLa (11. Januar 2004)

Ich habe mal alles 1:1 kopiert und jetzt funktionierts...

Liegt wohl daran, dass ich die Funktion nicht im Header hatte  

Vielen Dank nochmal...


----------



## qsrs (25. Mai 2005)

Kann ich den Aufruf auch mit einem Link vornehmen anstatt mit 
	
	
	



```
<input type="checkbox" value=" alle " onClick="this.value=check(this.form.list)">
```
 Wie würde das aussehen?


----------



## redX (25. Mai 2005)

Das geht sicher. Must den onClick einfach in einen <a> tag Knallen 

MFG
redX


----------



## qsrs (25. Mai 2005)

Im a-Tag funktioniert es nicht. Habe auch folgendes versucht, was auch nicht funktioniert hat:
	
	
	



```
<a href="javascript:this.value=check(this.form.list)">Test</a>
```


----------



## qsrs (26. Mai 2005)

Keiner eine Idee, wie man mit einem Link mehrere Checkboxen aktiviert? Ich verwende im Moment eine Funktion dafür, funktioniert aber nicht in NS, Firefox und diversen anderen - unter IE funktioniert es:


```
<script language="JavaScript" type="text/javascript">
var f = false;
function mark(field)
{
if(!f)
{
for(i=0;i<field.length;i++)
	field[i].checked = true;
f = true;
}
else
{
for(i=0;i<field.length;i++)
	field[i].checked = false;
f = false;
}
}
</script>
```
 Und so rufe ich sie über einen Link auf: 
	
	
	



```
<a href="javascript:mark(this.form_name.elements('box_name'))">Link</a>
```
 Ich hoffe, es kann jemand helfen.


----------

