Probleme mit Netscape bei Optionsfeldern
Robert
- javascript
Hallo
ich habe ein Problem mit meinem Javascript. Beim Internet Explorer und bei Opera läuft es einwandfrei nur bei Netscape und Mozilla nicht. Ich würdme mich freuen wenn Ihr mir helfen könntet.
Danke im vorraus
mfg
Robert
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function quantity(name){
var ort = name.split("option");
ort1 = eval("document.departmentForm." + ort[0] + "option1.value");
ort1 = ort1.split("|");
ort1 = ort1[0];
ort2 = eval("document.departmentForm." + ort[0] + "option2.value");
ort2 = ort2.split("|");
ort2 = ort2[0];
anzahlgesamt = eval("document.departmentForm." + ort[0] + "anzahl");
if(isNaN(ort1) == true){
rechts = 0;
}else{
rechts = Number(ort1);
}
if(isNaN(ort2) == true){
links = 0;
}else{
links = Number(ort2);
}
anzahlgesamt.value = rechts + links;
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="departmentForm" method="post" >
<table width="150" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td width="70"> </td>
<td width="80">Anzahl:</td>
</tr>
<tr>
<td width="70">Rechts</td>
<td width="80">
<select name="item_JOHNSON_zg_JOHNSON_SUREVUE_option1" onChange="quantity(this.name)">
<option value="Anzahl_Rechts|req" selected>0</option>
<option value="1|0.00|0.00|">1</option>
<option value="2|0.00|0.00|">2</option>
<option value="3|0.00|0.00|">3</option>
</select>
</td>
</tr>
<tr>
<td width="70">Links</td>
<td width="80">
<select name="item_JOHNSON_zg_JOHNSON_SUREVUE_option2" onChange="quantity(this.name)">
<option value="Anzahl_links|req" selected>0</option>
<option value="1|0.00|0.00|">1</option>
<option value="2|0.00|0.00|">2</option>
<option value="3|0.00|0.00|">3</option>
</select>
</td>
</tr>
</table>
Anzahl
<input type="text" name="item_JOHNSON_zg_JOHNSON_SUREVUE_anzahl" size="20" value="">
</form>
<p> </p>
</body>
</html>
Hi,
läuft es [...] bei Netscape und Mozilla nicht.
"läuft nicht" läuft nicht. Fehlerbeschreibung, bitte.
ort1 = eval("document.departmentForm." + ort[0] + "option1.value");
Warum eval(), anstatt sauber mit elements[x] zu arbeiten? Diesbezüglich könntest Du noch um einiges weniger fehleranfällig werden.
Cheatah
Hi
bei Netscape kommt diese Fehlermeldung:
JavaScript Error: file:/E|/oculi/Website/Untitled-2.htm,
line 14:
ort1 has no properties.
mit line 14 ist dies gemeint !
ort1 = eval("document.departmentForm." + ort[0] + "option1.value");
Warum eval(), anstatt sauber mit elements[x] zu arbeiten?
eval() benutze ich deswegen weil ich auf verschiedenen Seiten diese Funktion benutzen werde und das noch mehrmals im Dokument. Also muss es allgemein gehalten werden. Netscape kann bei eval() auf den zusammengestzen Ausdruck nicht zugreifen. Mit elements(x) könnte ich auch direkt ansteuern aber dann hätte ich nichts davon auf den anderen Seiten.
mfg
Robert
Hi,
ort1 has no properties.
das liegt vermutlich daran, dass es stimmt. Wie sieht denn der zusammengefügte String aus - ist es eine sinnvolle Objektreferenz?
eval() benutze ich deswegen weil ich auf verschiedenen Seiten diese Funktion benutzen werde und das noch mehrmals im Dokument. Also muss es allgemein gehalten werden.
Ja... und warum ist das ein Argument für eval()?
Mit elements(x) könnte ich auch direkt ansteuern aber dann hätte ich nichts davon auf den anderen Seiten.
Wieso meinst Du dies?
Cheatah
Hi
Danke für die schnelle Antworten(Cheatah)
ich habe vorher schon ohne eval probiert z.B.
ort1 = document.t.departmentForm.+ ort[0] + option2.value
wie kann ich mir den Ausdruck zusammensetzen und auf ihn zugreifen. Wenn das mit elements funktioniert dann brauche ich kein eval(). Da hast du Recht. Kannst du mir vielleicht verraten wie ich so ein Ausdruck zusammen setzten kann.
Die Idee ist einfach das man diese zwei Zahlen zusammenzählt. Das muss aber allgemein gehalten werden, weil ich das im Dokument mehrmals verwende. Deswegen übergebe ich auch den Namen der Optionsfelder.
Hi,
ort1 = document.t.departmentForm.+ ort[0] + option2.value
also, _das_ klappt garantiert nicht :-)
document ist ein Objekt, welches (vielleicht?) ein Objekt namens t enthält, welches seinerseits über ein Objekt namens departmentForm verfügt - und beim anschließenden Punkt gibt es einen Syntax Error, weil Du versuchst, den Inhalt _keiner_ Eigenschaft mit dem Inhalt von ort[0] zu verknüpfen.
Wenn das mit elements funktioniert dann brauche ich kein eval().
Richtig. Wo ist denn genau Dein Problem, wenn Du elements[name] verwenden willst?
Die Idee ist einfach das man diese zwei Zahlen zusammenzählt.
Welche Zahlen?
Das muss aber allgemein gehalten werden, weil ich das im Dokument mehrmals verwende. Deswegen übergebe ich auch den Namen der Optionsfelder.
Naja, das ändert genau gar nichts... :-)
Cheatah
Hi
war ein Schreibfehler mit dem t
ort1 = document.t.departmentForm.+ ort[0] + option2.value
ort1 = document.departmentForm.+ ort[0] + option2.value
ich will einfach nach dem departmentForm ein object ansprechen das ich dort auch zusammensetzten kann wie ein string z.B.
der Anfang des Namens vom element ändert sich nur option2 bleibt immer gleich. Z.B.
item_Beispiel1_option2
oder
item_Beispiel2_option2
den Namen gebe ich durch an die Funktion. Bis jetzt konnte ich nur über eval() auf die zusammengesetzte elemente zugreifen. Ich kann auch nicht den ganzen Namen vom Element benutzen weil es einmal option2 und option3 heisst. Na ja ich werde es irgendwie schaffen das auch Netscape damit klar kommt.
mfg
Robert
Richtig. Wo ist denn genau Dein Problem, wenn Du elements[name] verwenden willst?
Die Idee ist einfach das man diese zwei Zahlen zusammenzählt.
Welche Zahlen?
Das muss aber allgemein gehalten werden, weil ich das im Dokument mehrmals verwende. Deswegen übergebe ich auch den Namen der Optionsfelder.
Naja, das ändert genau gar nichts... :-)
Cheatah
Hi,
war ein Schreibfehler mit dem t
ort1 = document.t.departmentForm.+ ort[0] + option2.value
ort1 = document.departmentForm.+ ort[0] + option2.value
dann lass aus meiner Erklärung einfach nur das t weg, es ist nicht wichtig. Du versuchst, die Eigenschaft namens "" mit dem Inhalt von ort[0] zu verknüpfen, und das ist syntaktisch falsch. Eigenschaften ohne Namen gibt's nicht.
Ich kann auch nicht den ganzen Namen vom Element benutzen weil es einmal option2 und option3 heisst.
Wo ist dabei das Problem?
Na ja ich werde es irgendwie schaffen das auch Netscape damit klar kommt.
Vielleicht hilft es, wenn Du das was Du zitierst auch genauer durchliest:
Richtig. Wo ist denn genau Dein Problem, wenn Du elements[name] verwenden willst?
Cheatah