Margrit: sich wiederholende Berechnungen von Eingabefeldern

Hallo

Ich habe im html mehrmals hintereinander die folgenden drei input-Felder: Anzahl, Preis, Total. Die Anzahl wird vom user eingegeben, der Preis ist schon drin und das Total soll berechnet werden.

Unten ist der js und html Code. Meine for-Schleife scheint zwar die var richtig zusammen zu setzen, aber die Berechnungen werden nicht durchgefuehrt. Wie kann ich dieses Problem loesen?

Vielen Dank fuer eure Hilfe.
Margrit

function compute() {

var c = 1;
 for(i = 0; i < 5; i ++){
  str1 = "document.calc.";
  str2 = ".value";
  str3 = "anzahl";
  str4 = "total";
  str5 = "preis";

n_anzahl = str1.concat(str3).concat(c).concat(str2);
  n_preis = str1.concat(str5).concat(c).concat(str2);
  n_total = str1.concat(str4).concat(c).concat(str2);

n_total = n_anzahl * n_preis;

c ++;

}
}

html:

<TABLE>
<TR>
<TD>
<DIV ALIGN=CENTER>Anzahl</DIV>
</TD>
<TD>
<DIV ALIGN=CENTER>Preis</DIV>
</TD>
<TD>
<DIV ALIGN=CENTER>Total</DIV>
</TD>
<TD>
</TD>
</TR>

<FORM action="" method=POST name="calc">

<TR>
<TD>
<INPUT TYPE="TEXT" NAME="anzahl1" SIZE="6" onChange="compute()">
</TD>
<TD>
<INPUT TYPE="TEXT" NAME="preis1" SIZE="9" value="20" readonly >
</TD>
<TD>
<INPUT TYPE="TEXT" NAME="total1"   SIZE="9" onChange="compute()">
</TD>
</TR>

<TR>
<TD>
<INPUT TYPE="TEXT" NAME="anzahl2" SIZE="6" onChange="compute()">
</TD>
<TD>
<INPUT TYPE="TEXT" NAME="preis2" SIZE="9" value="20" readonly >
</TD>
<TD>
<INPUT TYPE="TEXT" NAME="total2"   SIZE="9" onChange="compute()">
</TD>
</TR>

<!-- Hier folgen noch weitere TR -->

</FORM>
</TABLE>

  1. Ich habe im html mehrmals hintereinander die folgenden drei input-Felder: Anzahl, Preis, Total. Die Anzahl wird vom user eingegeben, der Preis ist schon drin und das Total soll berechnet werden.

    Unten ist der js und html Code. Meine for-Schleife scheint zwar die var richtig zusammen zu setzen, aber die Berechnungen werden nicht durchgefuehrt. Wie kann ich dieses Problem loesen?

    str1 = "document.calc.";
      str2 = ".value";
      str3 = "anzahl";
      str4 = "total";
      str5 = "preis";

    n_anzahl = str1.concat(str3).concat(c).concat(str2);

    Jetzt ist
    n_anzahl = "document.calc.anzahl.INHALT_VON_C.value";
    Was Du brauchst, ist
    n_anzahl = document.calc.anzahl.INHALT_VON_C.value;
    (Erkennst Du den Unterschied?)

    Daher würde ich die Zeile so schreiben:

    eval('n_anzahl = ' + str1 + str3 + c + str2 + ';');

    1. Danke Mulder

      Etwas bin ich weitergekommen. n_anzahl und n_preis kann ich so einsetzen. Die Gleichung:

      document.calc.total1.value = n_preis * n_anzahl;

      funktioniert, aber wenn ich es so schreibe:

      n_total = n_preis * n_anzahl;

      dann wird die Berechnung nicht durchgefuehrt.
      Woran liegt das?

      Ich habe im html mehrmals hintereinander die folgenden drei input-Felder: Anzahl, Preis, Total. Die Anzahl wird vom user eingegeben, der Preis ist schon drin und das Total soll berechnet werden.

      Unten ist der js und html Code. Meine for-Schleife scheint zwar die var richtig zusammen zu setzen, aber die Berechnungen werden nicht durchgefuehrt. Wie kann ich dieses Problem loesen?

      str1 = "document.calc.";
        str2 = ".value";
        str3 = "anzahl";
        str4 = "total";
        str5 = "preis";

      n_anzahl = str1.concat(str3).concat(c).concat(str2);

      Jetzt ist
      n_anzahl = "document.calc.anzahl.INHALT_VON_C.value";
      Was Du brauchst, ist
      n_anzahl = document.calc.anzahl.INHALT_VON_C.value;
      (Erkennst Du den Unterschied?)

      Daher würde ich die Zeile so schreiben:

      eval('n_anzahl = ' + str1 + str3 + c + str2 + ';');