aerus: Verästelung - Javascriptfehler

Hallo liebes Forum,

ich habe gerade eine verästelte Abfrage gebastelt mit dem Code unten. Wenn ich jeweils nur den ersten Radiobutton anklicke - läuft es wunderbar. Wenn ich aber etwas anderes anklicke, dann läuft das Skript ab dem zweiten Zweig nicht mehr. Woran könnte es liegen?

  
<html>  
<header>  
<script type="text/javascript">  
  
function abfindung(){  
if (document.getElementById('erhalten').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 2 von 4</p><li><input type="radio" id="erh_abfindung" name="input" onclick="versicherung()">Ich möchte eine Abfindung</li><li><input type="radio" name="input" id="erh_weiter" onclick="versicherung()">Ich möchte weiterbeschäftigt werden</li>';  
	}  
else if (document.getElementById('erwartet').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 2 von 4</p><li><input type="radio" id="erw_abfindung" name="input" onclick="versicherung()">Ich möchte eine Abfindung</li><li><input type="radio" name="input" id="erw_weiter" onclick="versicherung()">Ich möchte weiterbeschäftigt werden</li>';  
	}  
}  
  
function versicherung(){  
if (document.getElementById('erh_abfindung').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 3 von 4</p><li><input type="radio" name="input" id="erh_abfindung_rv" onclick="link()">Ich bin rechtschutzversichert</li><li><input type="radio" name="input" id="erh_abfindung_nrv" onclick="link()">Ich habe keine Rechtschutzversicherung</li>';  
	}  
if (document.getElementById('erw_abfindung').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 3 von 4</p><li><input type="radio" name="input" id="erw_abfindung_rv" onclick="link()">Ich bin rechtschutzversichert</li><li><input type="radio" name="input" id="erw_abfindung_nrv" onclick="link()">Ich habe keine Rechtschutzversicherung</li>';  
	}  
if (document.getElementById('erh_weiter').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 3 von 4</p><li><input type="radio" name="input" id="erh_weiter_rv" onclick="link()">Ich bin rechtschutzversichert</li><li><input type="radio" name="input" id="erh_weiter_nrv" onclick="link()">Ich habe keine Rechtschutzversicherung</li>';  
	}  
if (document.getElementById('erw_weiter').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 3 von 4</p><li><input type="radio" name="input" id="erw_weiter_rv" onclick="link()">Ich bin rechtschutzversichert</li><li><input type="radio" name="input" id="erw_weiter_nrv" onclick="link()">Ich habe keine Rechtschutzversicherung</li>';  
	}  
}  
  
function link(){  
if (document.getElementById('erh_abfindung_rv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte eine Abfindung erhalten und bin rechtschutzversichert</a>';  
	}  
if (document.getElementById('erw_abfindung_rv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich erwarte eine Kündigung, möchte eine Abfindung erhalten und bin rechtschutzversichert</a>';  
	}  
if (document.getElementById('erh_weiter_rv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte weiterbeschäftigt werden und bin rechtschutzversichert</a>';  
	}  
if (document.getElementById('erw_weiter_rv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich erwarte eine Kündigung, möchte weiterbeschäftigt werden und bin rechtschutzversichert</a>';  
	}  
if (document.getElementById('erh_abfindung_nrv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte eine Abfindung erhalten und bin nicht rechtschutzversichert</a>';  
	}  
if (document.getElementById('erw_abfindung_nrv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte eine Abfindung erhalten und bin nicht rechtschutzversichert</a>';  
	}  
if (document.getElementById('erh_weiter_nrv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte weiterbeschäftigt werden und bin nicht rechtschutzversichert</a>';  
	}  
if (document.getElementById('erw_weiter_nrv').checked == true){  
	document.getElementById('boldStuff2').innerHTML = '<p>Schritt 4 von 4</p><a href="#">Ich habe eine Kündigung erhalten, möchte weiterbeschäftigt werden und bin nicht rechtschutzversichert</a>';  
	}  
}  
</script>  
</header>  
<p>Wie kann ich Ihnen helfen?</p>  
<ul>  
<div id='boldStuff2'>  
<li><input type='radio' name="input" id='erhalten'  onclick='abfindung()'/>Ich habe eine Kündigung erhalten</li>  
<li><input type='radio' name="input" id='erwartet' onclick='abfindung()'/>Ich erwarte eine Kündigung</li>  
</div>  
</ul>  
</html>  

  1. Tach!

    ich habe gerade eine verästelte Abfrage gebastelt mit dem Code unten. Wenn ich jeweils nur den ersten Radiobutton anklicke - läuft es wunderbar. Wenn ich aber etwas anderes anklicke, dann läuft das Skript ab dem zweiten Zweig nicht mehr. Woran könnte es liegen?

    Am eingebauten Fehler. Hast du mal in die Fehlerkonsole des Browsers geschaut? Dann wüsstest du zumindest, was der Browser beklagt. Wenn du dann wissen willst, was der Browser tatsächlich sieht, kannst du die Entwicklerwerkzeuge im Browser verwenden (z.B. FireBug für den Firefox). Die zeigen dir auch die tatsächlichen IDs an.

    Zudem ist den HTML-Code grob fehlerhaft. header ist was anderes als head, body fehlt, ul darf nur li enthalten und weder div noch später p.

    dedlfix.

    1. Hallo!

      Danke für deine Antwort! Html war nur auf die schnelle und im Halbschlaf geschrieben - die Fehler wirken sich, soweit ich sehe nicht auf das Skript aus.

      Firebug habe ich aktiviert - aber ich weiß nicht, wie ich damit nach dem Fehler suchen kann.

      Tach!

      ich habe gerade eine verästelte Abfrage gebastelt mit dem Code unten. Wenn ich jeweils nur den ersten Radiobutton anklicke - läuft es wunderbar. Wenn ich aber etwas anderes anklicke, dann läuft das Skript ab dem zweiten Zweig nicht mehr. Woran könnte es liegen?

      Am eingebauten Fehler. Hast du mal in die Fehlerkonsole des Browsers geschaut? Dann wüsstest du zumindest, was der Browser beklagt. Wenn du dann wissen willst, was der Browser tatsächlich sieht, kannst du die Entwicklerwerkzeuge im Browser verwenden (z.B. FireBug für den Firefox). Die zeigen dir auch die tatsächlichen IDs an.

      Zudem ist den HTML-Code grob fehlerhaft. header ist was anderes als head, body fehlt, ul darf nur li enthalten und weder div noch später p.

      dedlfix.

      1. Die Fehlerkonsole zeigt zB:

        Zeitstempel: 20.10.2012 10:29:37
        Fehler: TypeError: document.getElementById("erw_abfindung_rv") is null
        Quelldatei: file:///C:/Users/boris/Desktop/die_box.html
        Zeile: 33

        Aber was kann der Grund sein?

        1. Liebe(r) aerus,

          Die Fehlerkonsole zeigt zB:
          Fehler: TypeError: document.getElementById("erw_abfindung_rv") is null [...]
          Aber was kann der Grund sein?

          der Grund für diese Fehlermeldung ist, dass zu dem Zeitpunkt kein Element mit dieser ID im DOM existiert.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. @@dedlfix:

      nuqneH

      body fehlt

      Nö, der ist da.

      Im head fehlt allerdings der title.

      Qapla'

      --
      „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)