Was macht diese Funktion falsch ?
Bernhard
- javascript
Hallo zusammen,
folgende Funktion gibt immer den Wert "false" zurück auch wenn kein der definierten Bedienungen zutreffen:
function test_Text(fObj)
{
var reg_t = /[1]/;
var reg_tx = /[2]{1,35}$/;
var v_tf = "Falsche Spaltenname: \n\n";
for(var j=1; j<=fObj.length; j++)
{
if(fObj[j] != undefined)
{
if(fObj[j][1].length == 0)
{
v_tf += "Leer! \n";
}
else if(!reg_tx.exec(fObj[j][1]))
{
v_tf += " falsche Spaltenname: "+fObj[j][1]+" vergeben. \n";
}
}
}
return v_tf;
}
Was ist an der Funktion falsch ? Warum bekomme ich immer "false" zurück ?
Danke im Voraus.
Grüße Bernhard
Hi,
folgende Funktion gibt immer den Wert "false" zurück
wie hast Du dies festgestellt?
[...]
alert(v_tf);
return v_tf;
Cheatah
Hi,
festgestellt habe ich das in eine anderen Funktion, die die zurück gegebene Werte auswertet, der erste Weg, der zweite Weg wie Du :
if(v_tf)
{
alert(v_tf);
return false;
}
Grüße Bernhard
Hi,
festgestellt habe ich das in eine anderen Funktion, die die zurück gegebene Werte auswertet,
hast Du _wirklich_ die Rückgabe ausgewertet, oder nur auf die Variable zugegriffen, die in der anderen Funktion nicht existiert?
der zweite Weg wie Du :
Das ist nicht wie mein Vorschlag. Du änderst hier die Rückgabe, und vor allem gibst Du den Wert nicht immer aus.
Cheatah
Hallo,
in der andere Funktion werte ich den Rückgabewert nicht 'direkt' aus, sondern es wird der zurück gegebne Wert an ein Variable zugewiesen mit anderen werten aus andern Funktionen, so zu sagen es werden die Rückgabe werte gesammelt, ist eine vorhanden, das frage ich mit einer If Abfrage, werden alle Werte in einem alert Ausgabe ausgegeben.
Du änderst hier die Rückgabe, und vor allem gibst Du den Wert nicht immer aus.
Was meinst Du damit? Kannst Du bitte etwas näher den Satz erläutern?
Was betrifft den zweiten Teil, ja das stimmt, trifft keine Bedienung zu, wird kein Rückgabewert gebildet.
Die Lösung habe ich gefunden, es lag an der Vorbelegte "v_tf" Variable:
var v_tf = "Falsche Spaltenname: \n\n";
Das habe ich folgender Maßen geändert:
var v_tf="";
seit dem funktioniert die Funktion.
Danke für die Unterstützung.
Grüße Bernhard
Hi,
in der andere Funktion werte ich den Rückgabewert nicht 'direkt' aus, sondern [...]
kannst Du mal die für die Funktions-Kommunikation relevanten Codezeilen - also Funktionskopf, Rückgaben, innere Funktionsaufrufe - notieren?
Du änderst hier die Rückgabe, und vor allem gibst Du den Wert nicht immer aus.
Was meinst Du damit? Kannst Du bitte etwas näher den Satz erläutern?
Du gibst false statt v_tf zurück, und das if ist dort für Debugging-Zwecke kontraproduktiv.
var v_tf = "Falsche Spaltenname: \n\n";
Das habe ich folgender Maßen geändert:
var v_tf="";
seit dem funktioniert die Funktion.
Hast Du den Grund dazu herausgefunden? Ein Leerstring gilt als false, ein gefüllter als true; spielt das hierfür eine Rolle?
Cheatah