Struppi: Array-Zugriff und Änderung über Variable

Beitrag lesen

Hallo Leute,

möchte in einem Formularfeld eine Eingabeprüfung durchführen.
Nach erfolgter Eingabe wird die Funktion PruefeText aufgerufen und ich lese aus dem zum Formularfeld zugehörigen Array (UserNNalt) die Werte in lokale Variablen.
Ist die Eingabe korrekt, möchte ich den Wert UserNNalt[4] auf "1" setzen.
Weiß aber nicht, wie ich diesen Array-Wert über eine Variable beschreiben kann.

Kann mir jemand helfen?

Gruß

Schwabbo

...
1)

<input type="text" name="UserNNalt" size="30" onChange="PruefeText(this)"></font></td>
...

UserNNalt = new Array("Name", 3, 30, "XYZ", 0)
...

function PruefeText(vFeld)
{
var vFeldName = eval(vFeld.name+'[0]')
var vMinZeichen = eval(vFeld.name+'[1]')
var vMaxZeichen = eval(vFeld.name+'[2]')
var vPflichtText = eval(vFeld.name+'[3]')
var vFeldStatus = eval(vFeld.name+'[4]')

Warum eval? Woher hast du das?
eval ist langsam, fehleranfällig, schwerer zu debuggen und bringt den Netscape 4.x gern zum Absturz. Darüber hinaus in 99.99999% der Fälle in denen es eingesetzt wird nicht nötig.

das Gleiche macht:
var vFeldName = window[vFeld.name][0];
var vMinZeichen = window[vFeld.name][1];
var vMaxZeichen = window[vFeld.name][2];
var vPflichtText = window[vFeld.name][3];
var vFeldStatus = window[vFeld.name][4];

...

vFeld.name[4]=1 ??? geht nicht
eval(vFeld.name+'[4]'=1) ??? geht auch nicht

aber: window[vFeld.name][4] = 1;

Schön ist das aber nicht.

Struppi.