Der Martin: Javascript Bestellformular rechnet ned

Beitrag lesen

Hallo,

Aha, das heißt also, daß ich eine jede Variable dann wahrscheinlich mit ParseInt und ParseFloat vor den Rechenoperationen umwandeln darf ...

das ist eine von mehreren Möglichkeiten, vielleicht die sauberste. Oft sieht man auch, dass jemand die implizite Umwandlung erzwingt, indem er mit der Zahl (!) 1 multipliziert. Das ist stilistisch nicht so schön, aber kürzer zu schreiben.

dadurch wahrscheinlich nochmals das gleivhe an neuen "unbekannten" bekomme

Nö, wieso *neue* Unbekannte? Dieselben wie bisher, nur dass sie dann die richtigen Werte enthalten.

nur dann bin ich nochg ned echt weiter, da bis zur ausgabe dann immer noch ein weiter schritt ist und der besondere spaß mit der Ausgabe der unterschiedlichen Summen mit bezahlart.

So ganz verstehe ich noch nicht, wo du die Schwierigkeiten hast. Bei jeder Veränderung eines Eingabefeldes (onchange) liest du den Inhalt zweier Felder aus (anz1, preis1 oder anz2, preis2), bildest daraus ts1 oder ts2 und schreibst das Ergebnis in das jeweilige Formularfeld. Die folgende Rechnerei mit den Gesamtsummen ist ein wenig Fleißarbeit, aber nicht wirklich schwierig, oder?

Ich glaub, sicher daß ich das zwar irgendwie hinkrieg, aber dann wahr sowas von hand-zu-fuß, daß es nimmer schee is.

Naja, solche Schritt-für-Schritt-Rechnungen sehen immer irgendwie kompliziert aus, das liegt in der Natur der Sache - vor allem, wenn man immer wieder Zwischenergebnisse irgendwo angeben will.

aus "anz1" müßte ich dann folgendes machen, oder?
anz1=parseInt(document.kontakt.anz1.value);

Richtig. :-)

und aus "preis1"
preis1=parseFloat(document.kontakt.preis1.value);

Auch richtig.

"ts1" kann ich ja dann direkt berechnen, da "anz1" und "preis1" umgewandelt sind, bzw durch
ts1=parseFloat(document.kontakt.preis1.value)*anz1;
sogar eine zeile sparen

Oder noch mehr sparen, indem du beide Ausdrücke zusammenziehst:

ts1 = parseInt(document.kontakt.anz1.value) * parseFloat(document.kontakt.preis1.value);

Nüchtern betrachtet bräuchtest du in diesem Fall gar kein parseInt() oder parseFloat(), denn die Multiplikation ist ausschließlich für numerische Werte definiert, nicht für Strings. Daher wird der JS-Interpreter diese Umwandlung implizit selbst durchführen.

Und dann noch eines zum Schluss: Zitiere bitte sinnvoll. TOFU ist ekelhaft.

Grüße aus Backnang,
 Martin

--
Husten kann böse Folgen haben.
Besonders im Kleiderschrank.