Berechnung JavaScript Funktion

Hallo allerseits,

ich habe unten stehende Seite in HTML mit CSS und JavaScript und möchte mithilfe letzterer gerne, dass mir bei Eingabe des Jahrgangs in der Tabelle (letzte Zeile links) die Rentenerhöhungsmonate gemäß den beschriebenen Bedingungen „berechnet“, d.h. in der Tabelle letzte Zeile recht angezeigt werden.

Leider funktioniert mein Quellcode auch nach langem Hin- und Her Probieren nicht richtig, denn mir wird z.B. bei Eingabe von „1942“ rein gar nichts angezeigt…

Kann mir jemand helfen und einen Tipp geben, was ich falsch gemacht habe?

Herzlichen Dank!

Toby

Bundesregierung
<!–
function Erhoehung(Jahrgang) {
var Monate;
if (Jahrgang < 1947) {
Monate = 0;
} else {
if (Jahrgang < 1959 ) {
Monate = Jahrgang - 1946;
} else {
if (Jahrgang < 1964) {
Monate = 12 + (Jahrgang - 1958)*2;
} else {
Monate = 24;
}
}
}
return Monate;
}
//–>

<!–
.Stil1 {font-family: Arial, Helvetica, sans-serif;
background-color:#F8F6F4}
.Stil2 {font-family: Arial, Helvetica, sans-serif; color: #FF0000; }
–>
Bundesregierung aktuell:
Erhöhung des Renteneintrittsalters auf 67 ab 2029
Die Bundesregierung hat am 1. Februar 2006 die schrittweise Erhöhung des Renteneintrittsalters von 65 Jahren auf 67 Jahre wie folgt beschlossen. Quelle:

  • Die Anhebung beginnt im Jahr 2012 für die ab 1947 Geborenen.

  • Die Regelaltersgrenze für den Jahrgang 1947 beträgt 65 Jahre + 1 Monat, Geborenen die Regelaltersgrenze 66 gilt.

  • Für die ab 1959 Geborenen erfolgt die Anhebung in Zweimonatsschritten.

  • Für alle nach 1963 Geborenen gilt die Regelaltersgrenze 67.

Jahrgang
Rentenbeginn
… 1946
mit 65 Jahren
1947 … 1958
jeweils 1 Monat später als der vorherige Jahrgang
1959 … 1963jeweils 2 Monate später als der vorherige Jahrgang
1964 …mit 67 Jahren
mit 65 Jahren und Monate

Hallo Toby,

versuch mal statt des „return Monate“ in der Funktion folgende Zeiledocument.getElementsByName( „Monate“ )[0].value = Monate;Deine Funktion rechnet schon richtig aber das Ergebnis wird nirgends hingeschrieben. Der Rückgabewert verpufft sozusagen :wink:

Gruß
Volkmar

Hallo Volkmar,

vielen Dank für deinen Tipp! Habe das gleich ausprobiert: Wenn unten das steht:

mit 65 Jahren und Monate

… dann tut sich leider immer noch nichts. Javascript Debugger gibt als Fehler: „Jahrgang is not defined“ aus (???)

Wenn ich onlick=„Erhoehung()“ schreibe, dann gibt er mir immer „24“ zurück, egal welche Zahl ich eingebe und führt die Funktion quasi gar nicht aus.

Eventuell muss ich ja nur noch Kleinigkeit in der Funktion ändern, aber ich komme einfach nicht drauf.

Herzlichen Dank für weitere Anregungen im Voraus!

Gruß, Toby

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo Toby,

darauf hatte ich gar nicht geachtet. Anstelle von „Erhoehung(Jahrgang)“ versuche „Erhoehung(document.getElementsByName(‚Jahrgang‘)[0].value)“. Du könntest auchJahrgang = document.getElementsByName(„Jahrgang“)[0].value;am Anfang der Funktion aufnehmen und den Parameter entfernen.

Gruß
Volkmar

Hallo Volkmar,

super, danke! Jetzt klappt alles einwandfrei!

Einen sonnigen Sonntag,

Patrick

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]