Funktionsname aus array holen
huby
- javascript
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
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.
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
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.
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
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.
Ja.
Struppi.
Danke
huby