EKKi: Switch case + Combobox

Beitrag lesen

Mahlzeit nochmal,

Einverstanden? Dann sag Bescheid, wenn wir uns den zweiten Schritt (den man immer erst NACH dem ersten tun sollte!) vornehmen können.

Da mir gerade danach ist, mache ich einfach mal weiter:

Wir haben also jetzt ein Formular, wo der Benutzer Werte eingeben und die Berechnungsmethode auswählen kann. Jetzt fehlt nur noch die entsprechende Berechnung:

Javascript:
-----------

function berechne(formular) { // Funktion erwartet als Parameter das Formular, in dem sich die Eingabefelder befinden  
  var eingabe1 = parseFloat(formular.elements['eingabe1'].value); // Wert des ersten Eingabefeldes einlesen und in numerischen Wert umwandeln  
  var eingabe2 = parseFloat(formular.elements['eingabe2'].value); // Wert des zweiten Eingabefeldes einlesen und in numerischen Wert umwandeln  
  var ausgabe = '';  
  
  if (!isNaN(eingabe1) && !isNaN(eingabe2)) { // Wenn es sich um Zahlen handelt  
    switch (formular.elements['berechnung'].value) { // Unterscheidung der verschiedenen Berechnungen  
      case '+':  
        ausgabe = eingabe1 + eingabe2;  
      break;  
  
      case '-':  
        ausgabe = eingabe1 - eingabe2;  
      break;  
  
      case '*':  
        ausgabe = eingabe1 * eingabe2;  
      break;  
  
      case '/':  
        ausgabe = eingabe1 / eingabe2;  
      break;  
    }  
  }  
  
  if (ausgabe.toString(10) != '') { // Wenn ein Berechnungsergebnis vorliegt  
    formular.elements['ausgabe'].value = ausgabe; // Ausgabefeld füllen  
  }  
}

HTML:
-----

<form>  
  <label for="eingabe1">1. Zahl:</label> <input type="text" name="eingabe1" id="eingabe1" onchange="berechne(this.form);" onblur="berechne(this.form);">  
  
  <label for="berechnung">Berechnung:</label> <select name="berechnung" id="berechnung" onchange="berechne(this.form);">  
    <option value="+">plus</option>  
    <option value="-">minus</option>  
    <option value="*">mal</option>  
    <option value="/">geteilt</option>  
  </select>  
  
  <label for="eingabe2">2. Zahl:</label> <input type="text" name="eingabe2" id="eingabe2" onchange="berechne(this.form);" onblur="berechne(this.form);">  
  
  <label for="ausgabe">Ergebnis:</label> <input type="text" name="ausgabe" id="ausgabe" readonly="readonly">  
</form>

Das ist erstmal nur ein grober Vorschlag - insbesondere ungetestet! Du musst das natürlich für Deine Zwecke anpassen.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|