Vinzenz Mai: Automatisch einen Klick auf Checkbox erzeugen

Beitrag lesen

Hallo,

Aber wie genau mach ich dies nun, dass ich automatisch einen "Klick" auf die Checkboxen bei aufruf der Seite erzeuge damit wiederum das script läuft und der Text quasi vorausgewählt (und angezeigt) ist?

<script type="text/javascript">

» function Klick() {  

>      // Alle [ref:self812;javascript/objekte/elements.htm@title=Formularelemente] Deines Formulars (Syntax 2)  

       var el = document.meinFormular.[ref:self812;javascript/objekte/elements.htm@title=elements];  
       var count = el.length;  
       // Durchlaufe alle Formularelemente,  
       for (i = 0; i < count; i++) {  
           // wenn es sich um eine Checkbox handelt  
           if (el[i].[ref:self812;javascript/objekte/elements.htm#type@title=type] == 'checkbox') {  
               // führe den onclick-Handler aus  
               el[i].[ref:self812;javascript/sprache/eventhandler.htm#onclick@title=onclick]();  
           }  
       }  

> }

</script>

<body onload="Klick()">
</head>

<form id="meinFormular" name="meinFormular" method="get" action="#">
  <p>Welche Unterlagen werden benötigt</p>
    <input type="checkbox" id="checkbox1" onclick="zeigeText1(this)"> Zuwendungsnachweis<br>
    <input type="checkbox" id="checkbox2" onclick="zeigeText2(this)"> Agenda <br>
    <input type="checkbox" id="checkbox3" onclick="zeigeText3(this)"> Einladung <br>
    <input type="checkbox" id="checkbox4" onclick="zeigeText4(this)"> Checkliste Gesundheitsförderungsmaßnahmen<br>
    <input type="checkbox" id="checkbox5" onclick="zeigeText5(this)"> Hinweis auf EMC-Tool <br>
    </form>

Wie Martin Dir schon nahegelegt hat, benötigst Du keine fünf verschiedenen Funktionen, eine einzige reicht. Übergebe dazu:

a) eine Referenz auf das Element selbst (wie bisher)
b) der id-Wert des Zielelementes
c) den Text, der anzuzeigen ist:

<input type="checkbox" id="checkbox1" onclick="[code lang=javascript]zeigeText(this, 'ZWN', 'Zuwendungsnachweis')"> Zuwendungsnachweis<br>
[/code]
mit der Funktion

function zeigeText(elem, targetid, text) {  
    var content = '';  // Inhalt, der in innerHTML geschrieben wird  
    // Zugriff aufs Zielelement benötigen wir in jedem Fall.  
    var target = document.getElementById(targetid);  
    if (elem.checked) {  
        // Checkbox ist angehakt, wir benötigen Inhalt:  
        content = '<br>' + text;  
    }  
    target.innerHTML = content;  
    // Du erkennst, dass wir den else-Zweig gar nicht benötigen,  
    // denn dann passt die leere Zeichenkette, mit der wir unsere  
    // Inhaltsvariable vorbelegt haben.  
}  

Anmerkung:
An der Aufrufstelle ist darauf zu achten, dass gültiges HTML herauskommt.

Freundliche Grüße

Vinzenz