Christian: variabler Objektname

Hallo

Ich hab mal wieder keine Ahnung, wonach ich hierbei suchen soll, darum schreib ich ins Forum.
Mein Problem: Ich möchte Werte aus etwa 32 Felder addieren. Der Feldname verhält sich dabei so:
for(i=1;i<=12;i++){for(j=1;j<=4;j++){field=i+"_"+j;}}
Um jetzt die Felder zu addieren, habe ich das versucht:
for(i=1;i<=12;i++){for(j=1;j<=4;j++){erg+=document.formular.i+"_"+j.value;}}
Das klappt leider nicht. Ich ersuche deine Hilfe.
mfg
Christian

  1. Morgen Christian.

    Namen in HTML müssen als erstes Zeichen einen Buchstaben enthalten.
    Außerdem kannst du den Namen nicht einfach erzeugen. An dieser Stelle hilft eval() weiter.
    So müsste es funktionieren:
    for(i=1;i<=12;i++){for(j=1;j<=4;j++){erg+=eval("document.formular.x"+i+"_"+j+".value");}}
    ...vorrausgesetzt, du benennst die Felder um.

    MfG _Siro.

  2. Mein Problem: Ich möchte Werte aus etwa 32 Felder addieren. Der Feldname verhält sich dabei so:
    for(i=1;i<=12;i++){for(j=1;j<=4;j++){field=i+"_"+j;}}
    Um jetzt die Felder zu addieren, habe ich das versucht:
    for(i=1;i<=12;i++){for(j=1;j<=4;j++){erg+=document.formular.i+"_"+j.value;}}
    Das klappt leider nicht. Ich ersuche deine Hilfe.

    Vergiß die Variante mit eval, eval ist extrem langsam und du findest auch keine Fehler mehr.

    Mach es so:
    for( i = 1; i <= 12; i++ ) {
    for( j = 1; j <= 4; j++ )
    {
    erg += document.formular[i + "_" + j].value;
    }
    }

    Aber, das ist ein ungültiger Feldname, da diese nicht mit einer Zahl anfangen dürfen.

    Struppi.