> Das Problem ist nun, dass durch erneutes Abwählen von "bis heute" auf einmal ALLE 6 weiteren Blöcke erscheinen
Nun ja, Sie schreiben bei toogle2() folgendes:
if ((optionB.checked) | (optionC.checked))
Kleinigkeit am Rand: Das logische "Oder" wird mit zwei Pipes (||) angegeben, der einfache Pipe, den Sie verwenden ist eine Bit-Operation. Das kann hier funktionieren, ist aber nicht ganz korrekt.
Das Problem ist, dass sich die unterschiedlichen Filterfragen ein Stück weit widersprechen. Wenn Sie die oberste Option "bis heute" abwählen, dann greifen ganz viele Filter, z.B.
function toogle2() {
if ((optionB.checked) | (optionC.checked)) {
frage2.style.display = "none";
} else {
frage2.style.display = "";
}
optionC (das ist das besagte "bis heute") ist nicht markiert, das andere Kreuzchen ist auch nicht gesetzt. Also wird die Frage angezeigt.
> Die Sichtbarkeit eines weiteren Blocks soll/wird darüber geregelt, wenn im rechten Dropdown "Jahr" eine Jahreszahl ausgewählt wurde
Dann müssten Sie diese Bedingung in dem Filter noch ergänzen. Zum Beispiel können Sie mit (document.getElementById("G007").value > 0) prüfen, ob eine Jahreszahl im ersten Feld ausgewählt wurde.
Was mich im Moment aber eher umtreibt: Warum muss man das Kreuzchen "bis heute" (G026_01) erst einmal auswählen und dann wieder abwählen, damit die rechtlichen Fragen erscheinen? Ich empfehle, dass Sie in allen toogle()-Funktionen ein console.log() ergänzen, damit man das besser nachvollziehen kann. Also:
function toogle1() {
console.log("toogle1");
if (optionA.checked) {
frage1.style.display = "none";
} else {
frage1.style.display = "";
}
}