huby: Funktionsname aus array holen

Guten Morgen,

folgendes Problem:
Die Eingaben meiner Formulare kontrolliere ich mit dem Script von:
http://aktuell.de.selfhtml.org/artikel/javascript/formkontrolle/

Dieses Script hab ich nun wie folgt ergänzt:

/* Block 1b ruft eine weitere Funktion auf*/
  else if (myarray[i][1].indexOf('v')>-1) {
    if (field.value) {
       var functionsoption = myarray[i][3];
       var functionsname = myarray[i][2];
       var ausfuehren = functionsname;
       if(ausfuehren){
         field.className = 'error';
         error = true;
         err_msg.push(ausfuehren);
       } else {
         field.className = 'ok';
       }
    }
  }

Dies soll eine Funktion aufrufen die im Dateikopf notiert ist.
Das entsprechende Array:

var_1[10] = new Array('sparren','v','spa_za()','');

Wenn ich
var functionsname = spa_za();
schreibe funktioniert es einwandfrei.

Aber   var functionsname = myarray[i][2];   funktioniert leider nicht.
Auch wenn ich den Funktionsnamen ohne '' ins Array schreibe, funktioniert es nicht.

Könnt Ihr mir weiterhelfen,  wie ich den Funktionsnamen (und evtl. Funktionsoptionen = myarray[i][3]) korrekt aus einem Array auslesen kann?

Vielen Dank schon mal

huby

  1. Auch wenn ich den Funktionsnamen ohne '' ins Array schreibe, funktioniert es nicht.

    Du musst auch die Klammer weg machen, damit du eine Referenz auf die Funktion erzeugst, diese kannst du dann aufrufen.

    Struppi.

    1. Danke für die schnelle Antwort

      Du musst auch die Klammer weg machen, damit du eine Referenz auf die Funktion erzeugst, diese kannst du dann aufrufen.

      Jetzt hab ich mein Array so geschrieben:
       var_1[10] = new Array('sparren','v',spa_za,'');

      Die Ausgabe (alert) von formkontr.js zeigt mir jetzt die aufgerufen Funktion spa_za() an, und nicht die Fehlerausgabe, die von dieser Funktion errechnet werden soll.

      huby

      1. Du musst auch die Klammer weg machen, damit du eine Referenz auf die Funktion erzeugst, diese kannst du dann aufrufen.

        Jetzt hab ich mein Array so geschrieben:
        var_1[10] = new Array('sparren','v',spa_za,'');

        Die Ausgabe (alert) von formkontr.js zeigt mir jetzt die aufgerufen Funktion spa_za() an, und nicht die Fehlerausgabe, die von dieser Funktion errechnet werden soll.

        Du musst dann wenn du sie aufrufen willst, natürlich wieder die Klammer setzten.

        Mal als Beispiel:

        function Test() { alert('Test');}  
        var myFunc = Test; // <- referenz  
        myFunc(); // <- Aufruf von Test()  
        
        

        Struppi.

        1. Du musst dann wenn du sie aufrufen willst, natürlich wieder die Klammer setzten.

          Danke, das hab ich gerade bemerkt.

          So funktioniert es jetzt:
                 var functionsoption = myarray[i][3];
                 var functionsname = myarray[i][2];
                 var ausfuehren = functionsname();

          Jetzt möchte ich nur noch testen ob wie folgt auch die Optionen aus dem Array übernehmen kann.

          var functionsoption = myarray[i][3];
                 var functionsname = myarray[i][2];
                 var ausfuehren = functionsname(functionsoption);

          Müßte doch gehen, oder?

          Vielen Dank nochmal für Deine Hilfe

          huby

          1. Jetzt möchte ich nur noch testen ob wie folgt auch die Optionen aus dem Array übernehmen kann.

            var functionsoption = myarray[i][3];
                   var functionsname = myarray[i][2];
                   var ausfuehren = functionsname(functionsoption);

            Müßte doch gehen, oder?

            Ja.

            Struppi.

            1. Ja.

              Struppi.

              Danke

              huby