vergleich von gesamtgehalt und mindestgehalt

sensi-star

Grünschnabel
überprüfung vor dem absenden

hallo forum,

ich habe ein formular wo die jeweiligen felder vorkommen und wenn man den absenden knopf drückt ist das ein teil der überprüfung bevor das formular abgeschickt wird.

es sollen das einkommen von mann und frau sowie 60% der mieteinnahmen addiert werden
wenn der mann älter als 55 oder gewerbetreibender ist wird sein gehalt nicht berücksichtigt
ebenso bei der frau
wenn das gesamtgehalt niedrieger als das mindestgehalt ist soll ein alert aufgehen
allerdings passiert nichts auch die restlichen überprüfungen zb name, adresse usw. werden nicht mehr durchgeführt
habt ihr einen plan was ich da falsch gemacht habe?

Code:
 function check_mingehalt() {
 var einkm = document.form1.Nettoeinkommen_M.value;
 var einkf = document.form1.Nettoeinkommen_F.value;
 var miete = document.form1.Mieteinnahmen.value;
 var kred = document.form1.Kreditwunsch.value;
 var suof = document.form1.offener_Betrag_Summe.value;
 var mingehalt =  (kred + suof) % 1.4;
 var altm = document.form1.Lebensalterm.value;
 var altf = document.form1.Lebensalterf.value;
 var berufm = document.form1.Beruf_Mann.value;
 var beruff = document.form1.Beruf_Frau.value;
 if (berufm == "Gewerbetreibender") {
 var gesgehalt = einkf + (miete % 60);
 }
 if (beruff == "Gewerbetreibende") {
 var gesgehalt = einkm + (miete % 60);
 }
 if (altm >= "55") { 
 var gesgehalt = einkf + (miete % 60);
 }
 if (altf >= "55") { 
 var gesgehalt = einkm + (miete % 60);
 }
 else {
 var gesgehalt = einkm + einkf + (miete % 60);
 }
 if (mingehalt >= gesgehalt)
 alert('Ihr Gesamtgehalt beträgt' + gesgehalt \n 'Sie sollten ein Mindestgehalt von' + mingehalt 'haben.');
 }
 else {
 return true;
 }
}

vielen lieben dank

glg
sensi-star
 
Zuletzt bearbeitet:
Hi.

Die Werte der einzelnen Forumlarelemente sind Strings. D.h. du mußt diese erstmal in Zahlen umwandeln um damit rechnen zu können.

Javascript:
var miete = Number(document.form1.Mieteinnahmen.value);
Falls der Wert nicht in eine Zahl konvertiert werden kann, gibt die Funktion Number NaN (not a number) zurück. Darauf solltest du auch testen bevor du weiterrechnest.

Gruß
 
Welchen Browser verwendest du denn? Schau doch mal in die Javascript Konsole ob da irgendwelche Fehler auftauchen.

Der % Operator ist übrigens der Modulo Operator - der berechnet nicht so-und-soviel Prozent sondern den Rest bei einer Ganzzahldivision. Bsp: 10 % 3 = 1

Da mußt du schon / 100 * 60 bzw. * 3/5 rechnen.

Wenn da eine Bedingung nicht hinhaut, dann lass dir doch mal vor der Bedingung die Werte mit nem alert ausgeben.

Gruß
 
danke deepthroat,

ich verwende den ff und habe nun in der JavaScript Konsole entdeckt

in der if (mingehalt >= gesgehalt)
habe ich das { vergessen

und der alert in der letzten zeile war nicht ok
jetzt geht der code zumindest soweit das alles richtig gerechnet wird
jetzt werd ich mich damit spielen das das gehalt nicht gerechnet wird wenn zu alt oder gewerbetreibender

Code:
 function check_mingehalt() {
 var einkm = parseFloat(document.form1.Nettoeinkommen_M.value);
 var einkf = parseFloat(document.form1.Nettoeinkommen_F.value);
 var miete = parseFloat(document.form1.Mieteinnahmen.value);
 var kred = parseFloat(document.form1.Kreditwunsch.value);
 var suof = parseFloat(document.form1.offener_Betrag_Summe.value);
 var mingehalt =  (kred + suof) / 100* 1.4;
 var altm = document.form1.Lebensalterm.value;
 var altf = document.form1.Lebensalterf.value;
 var berufm = document.form1.Beruf_Mann.value;
 var beruff = document.form1.Beruf_Frau.value;

 if (berufm == "Gewerbetreibender") {
 var gesgehalt = einkf + (miete / 100 * 60);
 }
 if (beruff == "Gewerbetreibende") {
 var gesgehalt = einkm + (miete / 100 * 60);
 }
 if (altm >= "55") { 
 var gesgehalt = einkf + (miete / 100 * 60);
 }
 if (altf >= "55") { 
 var gesgehalt = einkm + (miete / 100 * 60);
 }
 else {
 var gesgehalt = einkm + einkf + (miete / 100 * 60);
 }
 if (mingehalt >= gesgehalt) {
 alert("Ihr Gesamtgehalt beträgt" + gesgehalt + "\n" + "Sie sollten ein Mindestgehalt von " + mingehalt + "haben.");
 }
 else {
 return true;
 }
}

vielen vielen dank für die denkanstösse

glg
sensi-star
 
Zuletzt bearbeitet:
Sorry,

ich habe das schon gelesen, ist nur eine kleine Umstellung für mich und ich muss mich erst daran gewöhnen das ich hier KLEIN und gross schreiben muss.

glg
sensi-star
 
Jetzt macht der Code genau das was ich möchte.
Code:
 function check_mingehalt() {
 var altm = document.form1.Lebensalterm.value;
 var altf = document.form1.Lebensalterf.value;
 var berufm = document.form1.Beruf_Mann.value;
 var beruff = document.form1.Beruf_Frau.value;
 var einkm = parseFloat(document.form1.Nettoeinkommen_M.value);
 var einkf = parseFloat(document.form1.Nettoeinkommen_F.value);
 var miete = parseFloat(document.form1.Mieteinnahmen.value);
 var kred = parseFloat(document.form1.Kreditwunsch.value);
 var suof = parseFloat(document.form1.offener_Betrag_Summe.value);
 var mingehalt =  (kred + suof) / 100* 1.4;
 if (altm >= "55" || berufm == "Gewerbetreibender") {
 einkm = 0;
 }
 if (altf >= "55" || beruff == "Gewerbetreibende") {
 einkf = 0;
 }
 var gesgehalt = einkm + einkf + (miete / 100 * 60);
 if (mingehalt >= gesgehalt) {
 alert("Ihr Gesamtgehalt beträgt" + gesgehalt + "\n" + "Sie sollten ein Mindestgehalt von " + mingehalt + "haben.");
 }
 else {
 return true;
 }
}

Vielen Dank

glg
sensi-star
 

Neue Beiträge

Zurück