Felix Riesterer: Liste füllen lassen

Beitrag lesen

Lieber Florian,

Das ist mein bisheriger Code.

dieser wäre besser lesbar, wenn Du die entsprechende Formatierung einschalten würdest:

function calculate()
{
wert1 = parseFloat(document.TaschenrechnerFormular.Eingabe1.value);
wert2 = parseFloat(document.TaschenrechnerFormular.Eingabe2.value);
var erg;
if(document.TaschenrechnerFormular.Auswahl.value === "PLUS"){
erg = wert1 + wert2;
document.TaschenrechnerFormular.Ergebnis.value = erg;
} else if(document.TaschenrechnerFormular.Auswahl.value === "MINUS"){
erg = wert1 - wert2;
document.TaschenrechnerFormular.Ergebnis.value = erg;
} else{
erg = Math.pow(wert1, wert2);
}
}

  
Da sehe ich im Wesentlichen nichts, was "die Rechnung" irgendwie abbilden würde. Dafür sehe ich aber "Unarten" wie z.B. globale Variablen. Das wird bei komplexeren Seiten, auf denen verschiedene Scripte eingebunden werden sollen, eventuell problematisch!  
  
Tipp: Deklariere alle Variablennamen ganz zu Beginn Deiner Funktion:  
  
~~~javascript
function calculate() {  
    var erg, wert1, wert2;

Desweiteren sehe ich nicht, warum Du die Variable "erg" überhaupt brauchst. Du kannst doch den Schritt "v = wert; obj.value = v;" auch schneller schreiben: "obj.value = wert1 + wert2". Es könnte aber sein, dass Du den langen Begriff "document.TaschenrechnerFormular.Ergebnis" für das Ergebnisfeld in einer Variable "erg" zusammenfassen willst... siehe meinen Code nachher.

Diese if-Verzweigungen wollen mir nicht so recht schmecken - ich bevorzuge bei diesem Fall das switch-Statement, da es hier um mehr als nur "ob oder nicht" geht:

var erg = document.TaschenrechnerFormular.Ergebnis; // für kürzere Schreibweise  
  
switch(document.TaschenrechnerFormular.Auswahl.value) {  
  
    case 'PLUS':  
        erg.value = wert1 + wert2;  
    break;  
  
    case 'MINUS':  
        erg.value = wert1 - wert2;  
    break;  
  
    default: // alle anderen Möglichkeiten  
        erg.value = Math.random() * 10000;  
    break;  
  
}

Du hast zwei Eingabefelder und einen Operator (Addition/Subtraktion/Multiplikation...). Das alles müsstest Du erst einmal in einen String zusammenfassen, der die konkrete Rechnung darstellt. Dann kann ich Dir dabei helfen, diesen Stringwert in Deine <ol>-Liste einzufügen.

Liebe Grüße,

Felix Riesterer.

--
"Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)