Javascript: Funktion nur ausführen wenn bedingung stimmt?

4 Antworten

function Rechner(){
	var x = parseInt(document.getElementById("laenge").value);
	var y = parseInt(document.getElementById("breite").value);
    if(isNaN(x) || isNaN(y)) return;
	document.getElementById("flaeche").value = x*y;
} 

Alternativ auch mit parseFloat anstelle von parseInt.

PWolff  13.10.2019, 19:27

Ich würde das Ausgabefeld leeren, sonst bleibt da das Ergebnis der letzten Berechnung drin stehen, auch wenn man einen ungültigen Zahlenausdruck einsetzt (wie 10.000.000,00 - beachte, dass parseFloat/parseInt die US-amerikanische Zahlendarstellung verwendet)

1
function Rechner(){
	var x=document.getElementById("laenge").value;
	var y=document.getElementById("breite").value;
 if(isNaN(x)&&isNaN(y)){
	document.getElementById("flaeche").value = xy; 
 } 
 else{
  alert('Erst denken, dann drücken!');
 }
}
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
PWolff  13.10.2019, 19:08

(Hier fehlt die Negation vor den isNaN())

1
whgoffline  13.10.2019, 19:09
@PWolff

Stimmt, kann leider nicht mehr die Antwort bearbeiten :(

Man muss nur ein ! vor die isNaN packen

2
regex9  13.10.2019, 19:29

Das Multiplikationszeichen fehlt ebenso. Ich vermute, du hast die Zeile vom FS nur abkopiert. MonkeyKing hat ebenso schon darauf hingewiesen.

1
whgoffline  13.10.2019, 19:32
@regex9

Ja Code hab ich vom Fragesteller übernommen, in der Hoffnung er wäre ok.

0

Erstmal

document.getElementById("flaeche").value = xy;

musst du

document.getElementById("flaeche").value = x*y;

schreiben.

Ansonsten machst du einfach

if (x && y) {    
    document.getElementById("flaeche").value = x*y; 
}
Woher ich das weiß:Berufserfahrung – 20 Jahre Berufserfahrung

if x != null && y!= null

berechne

else

schreibe warntext oder so