Christoph: Tickboxen

Beitrag lesen

Moin.

Falls Du Dein Problem nicht schn selbst gelöst bekommen hast, die mal ein Wink mit dem Zaunpfahl:

<html>
<head>
  <title>Meine Hobbys (Part II)</title>
</head>
<body>
                 <h1>Meine Hobbies sind...</h1>
                 <form name="frm">
                         <input type="checkbox" name="hobby1" value="Musik"> Musik <br>
                         <input type="checkbox" name="hobby2" value="Computer"> Computer <br>
   <input type="checkbox" name="hobby3" value="Mathe"> Mathematik <br>
                         <input type="checkbox" name="hobby4" value="Lesen"> Lesen <br>
   <input id="sport" type="checkbox" name="hobby5" value="Sport"> Sport <br>
   <input type="checkbox" name="hobby6" value="Handball" onklick="check(this,'sport')"> Handball <br>

^^^^^^
Das Attribut heißt 'onclick'!

<br>
     <input type="button" value="Zeige Hobbys..." onClick="auswertung()">
  </form>
                 <script language="JavaScript">
                 <!--
                         function auswertung()
                         {
                          eingabe=""

Dafür hat man Schleifen erfunden:

if (document.frm.hobby1.checked)
                          {
                                  eingabe += "Musik \n";
                          }

[...]

if (document.frm.hobby5.checked)
                          {
                                  eingabe += "Sport \n";
                          }
                          if (document.frm.hobby6.checked)
                          {
                                  eingabe += "Handball \nSport ";
                                          dannAuchSport();
                          }

Das kann man ersetzen durch

  
for(var i = 1; i <= 6; ++i) {  
    var el = document.frm['hobby'+i];  
    if(el.checked) {  
        if(i == 6) dannAuchSport();  
        eingabe += el.value + '\n';  
    }  
}  

alert(eingabe);
                         }
                         function dannAuchSport()
                         {
        alert("Wenn Ihr Hobby Handball ist, dann auch Sport!");
   }
                         function check(element, id)
                         {
      var other = document.getElementById(id);
    if (typeof(other) == 'object')
                                 {
         other.checked = element.checked;

^^^^^^^^^^^^^^
hier brauchst du

  
         if(element.checked) other.checked = true;  

sonst wird auch 'Sport' immer deselektiert, wenn 'Handball' deselektiert wird!

}
   }
                 //-->
                 </script>
</body>
</html>

Ansonsten gehört language="JavaScript" in die Tonne und durch type="text/javascript" ersetzt. Die Kommentare um das Skript kann man sich übrigens auch sparen...

Christoph