JavaScript: Preise aus mehreren Dropdown-Listen addieren?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ist jetzt nicht der sauberste Code, nimm dir daran also kein Beispiel :D

https://jsfiddle.net/xke3zrs1/

 // Die Funktion die bei einer Änderung der Auswahlliste aufgerufen wird
function summieren() {
  // Alle Auswahl Elemente holen
  var auswahllisten = document.getElementsByClassName("auswahl");


	// Die Ergebnis Variable setzen mit dem Wert deiner Vorgabe
  // "Number" ist hier erforderlich da JavaScript sonst mit Strings rechnet und diese concatiniert
  var ergebnis = Number(document.getElementById("vorgabe").value);


  // Die Auswahl Elemente durchlaufen
  for (i = 0; i < auswahllisten.length; i++) {
  	// Den jeweils ausgewählten Wert auf das Ergebnis aufrechnen
    ergebnis += Number(auswahllisten[i].value);
  }
  
  // Das Gesamtergebnis ausgeben
  // "toFixed" rundet das Ergebnis, da JS aus (0,60 + 0,65 + 0,95 + 0,60) z.B 2.8000000000000003 macht
	document.getElementById("ergebnis").innerHTML = ergebnis;
}

Mit Zeit kommt Übung. Selbst würde ich JQuery dafür nutzen. Macht alles deutlich einfacher zu lesen und weniger zu schreiben :)

Woher ich das weiß:Hobby

4n0nym3r 
Fragesteller
 11.09.2021, 08:47

Hallo Gho5txx,

vielen Dank für diese unfassbar tolle Hilfe!

Ich hätte da noch ein paar Fragen:

Besteht die Möglichkeit, bei dem Endergebnis aus dem Punkt ein Komma machen zu lassen? Und kann ich den Startwert schon im Script festlegen, sodass dieser vorher nicht manuell eingegeben muss? Der Startwert ist immer derselbe (1,75 €).

Ich würde mich freuen, wenn das irgendwie funktioniert. :)

Beste Grüße
4n0nym3r

0
Gho5txx  11.09.2021, 12:28
@4n0nym3r
Und kann ich den Startwert schon im Script festlegen, sodass dieser vorher nicht manuell eingegeben muss? Der Startwert ist immer derselbe (1,75 €).

Logisch, ersetze einfach das "document.getElementById("vorgabe").value" durch 1.75

Besteht die Möglichkeit, bei dem Endergebnis aus dem Punkt ein Komma machen zu lassen?

Natürlich. Wenn es Währung ausgegeben werden soll, dann damit:

document.getElementById("ergebnis").innerHTML = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(ergebnis);

de-DE steht für das Deutsche Format. "currency" für Währung und "EUR" logischerweise für die Art der Währung.

2
4n0nym3r 
Fragesteller
 11.09.2021, 15:17
@Gho5txx

Super, vielen Dank für die Hilfe! :)

0