• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mehrere Checkboxen aktivieren

Der Hans

Mitglied
Ein wohl endloses Thema, aber immer wieder neue Probleme: Ich möchte mehrere Checkboxen per onClick-Event mit einem Button aktivieren. Mein Problem dabei ist, dass die Checkboxen keinen einheitlichen Namen (die erste heißt "checkbox1", danach wird die Zahl am Ende hochgezählt; die Anzahl der Boxen ist variabel) haben, über den ich sie ansprechen kann.
Kann man nicht auch irgendwie den Typ von Elementen auslesen und davon abhängig die Elemente manipulieren? Also so, dass ich bei allen Elementen vom Typ "checkbox" die Eigenschaft "checked" auf true setzen kann?

Wären die Namen der Checkboxen alle gleich, würde ich es so lösen:
Code:
function check(){
    for(i=0;i<document.formular_name.checkbox_name.length;i++){
        document.formular_name.checkbox_name[i].checked=true;
    }
}
Die unterschiedlichen Namen sind allerdings notwendig um die Daten hinterher gescheit auswerten zu können und müssen daher beibehalten werden.

Hat jemand eine Idee, wie man das angehen könnte?
 
Werbung:
In PHP haben üblicherweise solche Elemente einen Namen in der Dorm: 'name[]' und können dann "ordentlich" ausgewertet werden. Bei deiner Variante der Namensvergabe bleibt nichts anderes übrig, als alle Elemente im Formular auf ähnliche Namen zu prüfen. Oder du baust einen Container um die Elemente und holst dann alle Checkboxen mit getElementsByTagName
 
Ich möchte mehrere Checkboxen per onClick-Event mit einem Button aktivieren.

Testseite wie gewünscht.
HTML:
<!DOCTYPE html>
<html>         
    <head>                 
        <meta charset=utf-8>                 
        <title> Alle Checkboxen auswählen                 
        </title>                 
        <style type="text/css">                 
        body {
            background-color: rgb(240,255,176);
        }
        </style> 
        <script>  
        function InputCheck()
        {
          for(var x=0;x<document.testform.elements.length;x++) {
            var y=document.testform.elements[x];
            if(y.name!='all_click')y.checked="true";
          }
        } 
        </script>     
    </head>         
    <body>              
        <form action="foo.php" method="post" name="testform">
            <input type="checkbox" name="oliver" value="whatever">
            <input type="checkbox" name="stan" value="whatever">
            <input type="checkbox" name="dick" value="whatever">
            <input type="text">
            <input type="checkbox" name="und_doof" value="whatever">
            <input type="button" name="alltrue" value="alle Auswählen" align="bottom" onClick="InputCheck(this.form);">
        </form>
    </body>
</html>
Es werden alle Checkboxen innerhalb des Formulars auf True gesetzt, wenn man den Button betätigt.
 
Werbung:
Danke schön, das sieht schonmal sehr gut aus. Um einen zusätzlichen Buttons zum Abwählen aller Boxen zu haben, habe ich einfach mal die Funktion "InputCheck" kopiert, als "InputUncheck" wieder eingefügt, y.checked auf "false" gestellt und einen neuen Button eingefügt, der die Uncheck-Funktion aufruft. Allerdings zeigt dieser Button (bzw. die aufzurufende Funktion) keine Reaktion. Woran kann das liegen?
 
Danke schön, das sieht schonmal sehr gut aus. Um einen zusätzlichen Buttons zum Abwählen aller Boxen zu haben, habe ich einfach mal die Funktion "InputCheck" kopiert, als "InputUncheck" wieder eingefügt, y.checked auf "false" gestellt und einen neuen Button eingefügt, der die Uncheck-Funktion aufruft. Allerdings zeigt dieser Button (bzw. die aufzurufende Funktion) keine Reaktion. Woran kann das liegen?
Der Grund könnte vielleicht in der Fehlerkonsole stehen.
 
Die Fehlerkonsole ist komplett leer, da habe ich keine Infos herbekommen.

Edit: Ich habe gerade gemerkt, dass auch der "Abwählen"-Button alle Checkboxen anwählt.
 
Zuletzt bearbeitet:
Werbung:
Das liegt daran, dass true/false keine Zeichenketten sind, sondern Schlüsselwörter und folglich ohne Anführungszeichen geschrieben werden muss.
 
Zurück
Oben