fehlerhaftes Script
David Hörpel
- javascript
0 Zapp
Hi!
Kann mir einer sagen, was an diesem Script falsch ist?Wenn die Variablen undefiniert sind bekomme ich "NaN", was eigenttlich 0 sein müsste und sonst bekomme ich hier "Syntaxfehler" .Dann kreidet er mir diese Zeile an: <Script language="Javascript">
Hier das Script:
<Script language="Javascript">
ergebnis1 = eval(parent.ar+parent.aj+parent.ap);
ergebnis2 = eval(parent.t+parent.n);
document.write(eval(ergebnis1+ergebnis2));
</Script>
Und hier zur Ergänzung das Script, in denen die Variablen erzeugt werden:
function aj() {if(typeof(parent.a)=="undefined"){parent.aj ="0"} else{parent.aj = document.form0.text0.value*35.28; parent.ak = document.form0.text0.value;}}
Diese Funktion speichert in der Variablen die Zahl und die folgende Datei verwendet wieder diese Datei. Die Variablen (Bsp. parent.aj) werden ordnungsgemäß übergeben(habe ich schon überprüft), nur beim Zusammenrechen hat er Probleme. Für die anderen Variablen ist die Funktion aj() genauso anwendbar. Danke für die Hilfe!
Gruß David!
Hallo David,
Kann mir einer sagen, was an diesem Script falsch ist?Wenn die Variablen undefiniert sind bekomme ich "NaN", was eigenttlich 0 sein müsste und sonst bekomme ich hier "Syntaxfehler" .Dann kreidet er mir diese Zeile an: <Script language="Javascript">
Mit den Zeilennummern darfst du es im IE nicht so genau nehmen, er meint sicher die nächste Zeile.
ergebnis1 = eval(parent.ar+parent.aj+parent.ap);
ergebnis2 = eval(parent.t+parent.n);
document.write(eval(ergebnis1+ergebnis2));
Nimm besser die eval raus, und sorge dafür, dass du nur mit Zahlen und nicht mit Zeichenketten rechnest. Den Typ der Variablen kannst du dir mit alert(typeof(parent.ar)); usw. ausgeben lassen.
Wird "string" ausgegeben, muss die Zeichenkette zum Rechnen in eine Zahl umgewandelt werden:
http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int
http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_float
http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#number
function aj() {if(typeof(parent.a)=="undefined"){parent.aj ="0"} else{parent.aj = document.form0.text0.value*35.28; parent.ak = document.form0.text0.value;}}
Hier weist du parent.aj nicht die Zahl 0, sondern die Zeichenkette "0" zu; entscheidend dafür sind die Anführungszeichen. Und auch der value von input-Feldern ist erst mal eine Zeichenkette.
Grüße, Stefan