JS check / uncheck deaktivierter Checkboxen

WiZdooM

Erfahrenes Mitglied
Hi

Ich habe 6 deaktivierte checkboxen, die allein zu Zwecken der Informationen (was im Paket enthalten ist) dienen. Über eine Combobox kann ich nun zwei verschiedene Pakete auswählen. Paket1 behinhaltet 3 Artikel, Paket2 6 Artikel (darunter die gleichen wie in Paket1),
über onchange(); wollte ich nun je nach Auswahl
document.getElementById("Dokumentation").checked=true;
und
document.getElementById("Dokumentation").checked=false;
setzen.

Leider passiert da nichts, die Checkboxen werden nicht gesetzt und geleert. Muss hierfür die Checkbox aktiv sein oder ist die Syntax falsch?
 
Das hier geht auf jeden Fall. Mein Tipp ist dass du entweder einen Tippfehler gemacht hast (was sagen die Fehler-Meldungen?) oder einen Denkfehler. onchange ist beispielsweise ein Event, keine Funktion. Daher keine Klammern hinter onchange.

HTML:
<script type="text/javascript"><!--
    var pack;    // Zeiger auf das Dropdown

  // BEIM LADEN EVENT-HANDLER ZUWEISEN UND ZEIGER SETZTEN
    window.onload = function() {
        pack = document.getElementById("pack"');
        pack.onchange = setBoxes;
    }

    function setBoxes() {
      // MARKIERUNG BEI ALLEN CHECKBOXEN ENTFEHRNEN
        for(i=0; obj = document.getElementsByTagName("input")[i]; ++i) {
            obj.checked = false;
        }
      // JE NACH AUSWAHL CHECKBOXEN MARKIEREN
        switch (pack.selectedIndex) {
          case 1:
            document.getElementsByTagName("input")[0].checked = true;
            document.getElementsByTagName("input")[1].checked = true;
            break;
          case 2:
            document.getElementsByTagName("input")[1].checked = true;
            document.getElementsByTagName("input")[2].checked = true;
            break;
          case 3:
            document.getElementsByTagName("input")[0].checked = true;
            document.getElementsByTagName("input")[2].checked = true;
            break;
        }
    }
//--></script>

<select id="pack" name="pack">
    <option>&nbsp;</option>
    <option>Paket 1</option>
    <option>Paket 2</option>
    <option>Paket 3</option>
</select>

<input type="checkbox" />foo<br />
<input type="checkbox" />bar<br />
<input type="checkbox" />doo<br />
 
Zuletzt bearbeitet:
Hmm laut Konsole kommt kein Fehler.

Der entsprechende HTML code ist dieser hier:

HTML:
<select name="FzBaugrp" id="FzBaugrp" style="width:150px" onchange="checkBaugrp();">
<option selected="selected"></option>
<option value="3 Baugruppen" <?php if($_SESSION['FzBaugrp'] == "3 Baugruppen") echo 'selected="selected"'; ?>>3 Baugruppen</option>
<option value="6 Baugruppen" <?php if($_SESSION['Fzbaugrp'] == "6 Baugruppen") echo 'selected="selected"'; ?>>6 Baugruppen</option>
</select>

<div class="text" id="Motor" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="motor" type="checkbox" <?php if(!empty($_SESSION['FzBaugrp'])) echo 'checked="checked"';?> disabled="disabled" /> Motor </div>

<div class="text" id="Getriebe" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="getriebe" type="checkbox" <?php if(!empty($_SESSION['FzBaugrp'])) echo 'checked="checked"';?>disabled="disabled" />Getriebe </div>
 
<div class="text" id="Differential" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="differential" type="checkbox" <?php if(!empty($_SESSION['FzBaugrp'])) echo 'checked="checked"';?>disabled="disabled" /> Differential</div>

<div class="text" id="Kraftstoff" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="kraftstoff" type="checkbox" <?php if($_SESSION['FzBaugrp']=="6 Baugruppen") echo 'checked="checked"';?> disabled="disabled" />Kraftstoffanlage</div>

<div class="text" id="Kuehlsystem" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="kuehlsystem" type="checkbox" <?php if($_SESSION['FzBaugrp']=="6 Baugruppen") echo 'checked="checked"';?> disabled="disabled" /> Kühlsystem </div>

<div class="text" id="Lenkung" style="background-color: #CCCCCC; width: 130px; float: left">
<input name="lenkung" type="checkbox" <?php if($_SESSION['FzBaugrp']=="6 Baugruppen") echo 'checked="checked"';?> disabled="disabled" />Lenkung</div>

gefolgt von diesem Javascript
Javascript:
function checkBaugrp(){
                if(document.getElementById("FzBaugrp").value=="3 Baugruppen"){
                    document.getElementById("Motor").checked=true;
                    document.getElementById("Getriebe").checked=true;
                    document.getElementById("Differential").checked=true;
                    document.getElementById("Kraftstoff").checked=false;
                    document.getElementById("Kuehlsystem").checked=false;
                    document.getElementById("Lenkung").checked=false;

                }
                else if(document.getElementById("FzBaugrp").value=="6 Baugruppen"){
                    document.getElementById("Motor").checked=true;
                    document.getElementById("Getriebe").checked=true;
                    document.getElementById("Differential").checked=true;
                    document.getElementById("Kraftstoff").checked=true;
                    document.getElementById("Kuehlsystem").checked=true;
                    document.getElementById("Lenkung").checked=true;
                }
                else{    
                    document.getElementById("Motor").checked=false;
                    document.getElementById("Getriebe").checked=false;
                    document.getElementById("Differential").checked=false;
                    document.getElementById("Kraftstoff").checked=false;
                    document.getElementById("Kuehlsystem").checked=false;
                    document.getElementById("Lenkung").checked=false;
                }
            }
 
Zuletzt bearbeitet von einem Moderator:
Die Funktion heißt getElementById() also sollten deine Checkboxen auch die ensprechenden ids haben. Ids haben aber bei dir nur die <div>-Tags. <div>-Tags sind keine Checkboxen, ergo haben sie auch kein checked-Attribut, das du ändern könntest. Dein Code spuckt ganz sicher in der Error-Konsole Fehler aus.
 
Zuletzt bearbeitet:
Aua ! Danke für den Wink mit dem Lattenzaun!

Ich sitze heut echt schon zu lange vor Code und sehe den Wald vor Lauter Bäumen nicht mehr...

Entschuldigt meine Verpeiltheit.
 
Kein Problem - ich hab schon einen Flüchtigkeitsfehler vermutet.

Thema noch unten als erledigt markieren, bitte... :)
 

Neue Beiträge

Zurück