[latex]Mae govannen![/latex]
<html>
<head>
<title></title>
<b><body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
[...]
</html></b>
Das ist Mist. Du schließt das body-Element und den schließenden html-Tag in ein b-Element ein und erzeugst dadurch eine unsinnige Verschachtelung. Entferne die Tags <b> und </b> rückstandlos. Weiterhin solltest du auch (aber das ist kein direkter Fehler) sämtlich Attribute des Body-Elements entfernen und die Darstellung rein per CSS lösen.
<form id="meinFormular" id="meinFormular" method="get" action="#">
Du vergibst hier zwei Mal das Attribut "id", das ist nicht gestattet.
<p>Welche Unterlagen werden benötigt</p>
<input type="checkbox" id="checkbox1" onclick="javascript:zeigeText1(this.id)" checked> Zuwendungsnachweis<br>
<input type="checkbox" id="checkbox2" onclick="javascript:zeigeText2(this.id)" checked> Agenda <br>
<input type="checkbox" id="checkbox3" onclick="javascript:zeigeText3(this.id)" checked> Einladung <br>
<input type="checkbox" id="checkbox4" onclick="javascript:zeigeText4(this.id)"> Checkliste Gesundheitsförderungsmaßnahmen<br>
<input type="checkbox" id="checkbox5" onclick="javascript:zeigeText5(this.id)"> Hinweis auf EMC-Tool <br>
</form>
Sieht doch aus wie eine Liste, oder? Also auch als Liste auszeichnen.
Die IDs sind überflüssig und können komplett entfallen.
Der Text soll als Label-Element eine Beziehung zur jeweiligen Checkbox aufbauen.
Die Zeilenumbrüche entfallen.
Das Label javascript: ist unnötig, was in onxxxx-Attributen steht, ist immer[1] Javascript.
Die Checkboxen sollten durch ein gemeinsames Name-Attribut gruppiert werden.
Es muß nicht für jede Checkbox eine eigene Funktion definiert werden.
Also bereinigen wir den Aufbau:
<form id="meinFormular" name="meinFormular" method="get" action="">
<p>Welche Unterlagen werden benötigt?</p>
<ul>
<li><label><input type="checkbox" name="unterlagen" onclick="zeigeText(this, 'ZWN')" checked> Zuwendungsnachweis</label></li>
<li><label><input type="checkbox" name="unterlagen" onclick="zeigeText(this, 'Agenda')" checked> Agenda</label></li>
<li><label><input type="checkbox" name="unterlagen" onclick="zeigeText(this, 'Einladung')" checked> Einladung</label></li>
<li><label><input type="checkbox" name="unterlagen" onclick="zeigeText(this, 'Checkliste')"> Checkliste Gesundheitsförderungsmaßnahmen</label></li>
<li><label><input type="checkbox" name="unterlagen" onclick="zeigeText(this, 'EMC')"> Hinweis auf EMC-Tool</label></li>
</ul>
</form>
Nun zum Javascript. Ich würde es vorerst (ist wahrscheinlich noch optimierbar) so lösen:
(Aufgrund einiger Probleme mit meinem lokalen Server kann ich das gerade nicht selber testen, daher können Fehler drin sein)
// Um globale Variablen möglichst zu minimieren, den gesamten Code in eine Funktion einschließen
// und diese direkt nach der Erstellung ausführen
var zeigeText = (function () {
var texte = {
'ZWN': 'Zuwendungsnachweis',
'Agenda': 'Agenda',
'Einladung': 'Einladung',
'Checkliste': 'Checkliste',
'EMC': 'Hinweis EMC.'
};
// Diese Funktionsreferenz wird an die Variable zeigeText zurückgegeben und bei Aufrufen von zeigeText()
// wird nur diese Funktion ausgeführt
return function (el, targId) {
// [link:http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder@title=Ternärer Operator] statt if ... else
document.getElementById(targId).innerHTML = (el.checked) ? '<br>' + texte[targId] : '';
};
})();
... Wobei der HTML-Teil mit den Ziel-Divs und dem per JS eingefügten <br> durchaus auch noch sinnvoller gestaltet werden kann. (z.B. Liste).
Weiterhin sollten die onclick-Attribute entfallen und duch unobstrusive Javascript ersetzt werden, Elementreferenzen einmalig ermittelt werden (z.B. onload) und nicht bei jedem Funktions-Aufruf durch document.getElementById erneut, aber das würde glaube ich jetzt viel zu weit führen...
<br>
... wird in den seltesten Fällen benötigt, löse die Darstellung per CSS
<font color="#FF0000">
...ist, wie die Attribute des body-Elements auch, veraltete Technik, durch CSS ersetzen.
Stur lächeln und winken, Männer!
Kai
Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
in Richtung "Mess up the Web".(suit)
SelfHTML-Forum-Stylesheet