form1 is not defined
Frank Pachollek
- html
Hey,
Der folgende Quelltext funktioniert mit dem IE 5.0 tadellos.
<html>
<head>
<title>Probe</title>
<script Language="JavaScript">
function jump()
{
alert(form1.menu.value);
if (form1.menu.value == "")return;
parent.produktnr = parseFloat(form1.menu.value);
window.location = "Dateiname.htm";
location.reload();
}
</script>
</head>
<form name="form1" method=POST>
<select name="menu" onChange="jump()">
<option selected value>(Bitte wählen Sie aus) </option>
<option value="1">Auswahl 1 </option>
<option value="2">Auswahl 2 </option>
<option value="3">Auswahl 3 </option>
</select></p>
</form>
</body>
</html>
Der Netscape Communicator 4.5 meldet bei der Ausführung einer Auswahl:
form1 is not defined.
form1 ist doch definiert oder?
Vielen Dank im voraus
Frank Pachollek
Versuch mal das Formular mit "document.form1" anzusprechen.
Hey,
so funktionierts mit dem IE und mit Netscape
alert(document.form1.menu.options[document.form1.menu.selectedIndex].value);
Aber warum??
Vielen Dank für Eure Bemühungen
Frank Pachollek
Hi Frank,
steht das da wirklich so?
Denn da fehlt irgendwie der <body> und den braucht Netscape nun mal... ansonsten denke ich mit document.form1.menu.value müßte es gehen.
Gruß
Leonhard
Hi Frank,
steht das da wirklich so?
Denn da fehlt irgendwie der <body> und den braucht Netscape nun mal... ansonsten denke ich mit document.form1.menu.value müßte es gehen.
Gruß
Leonhard
Hey Leonhard,
Sorry!
<body> ist versehentlich raus geflogen, als ich den Code für das Forum auf das Wesentliche gekürzt habe.
Hier noch einmal der Code mit <body>
<script Language="JavaScript">
function jump()
{
alert(document.form1.menu.value);
if(document.form1.menu.value == "")return;
parent.produktnr = parseFloat(document.form1.menu.value);
window.location = "Dateiname.htm";
location.reload();
}
</script>
</head>
<body>
<form name="form1" method=POST>
<select name="menu" onChange="jump()">
<option selected value>(Bitte wählen Sie aus) </option>
<option value="1">Auswahl 1 </option>
<option value="2">Auswahl 2 </option>
<option value="3">Auswahl 3 </option>
</select></p>
</form>
</body>
</html>
Beim IE ist alles ok. Der Netscape meldet NULL, trotz document.form1.menu.value.
Habt Ihr noch eine Idee?
Ich denke auch das es nur ein Flüchtigkeitsfehler ist, aber wo?
Bis bald
Frank Pachollek
Hi Frank,
jetzt habe ich erst gesehen, wo der Fehler liegt... aber besser spät als nie ;-)
Der Value von menu bleibt immer "null", das ist statisch, du willst ja wissen, welcher eintrag ausgewählt ist und das geht über "selectedIndex":
function jump()
{
var auswahl=document.form1.menu[document.form1.menu.selectedIndex].value;
alert(auswahl);
if (auswahl == "")return;
parent.produktnr = parseFloat(auswahl);
window.location = "Dateiname.htm";
location.reload();
}
</script>
So klappts auch mit dem Nachbarn äh... Netscape ;-)
Gruß Leonhard
Sorry, dass ichs erst jetzt sehe, aber das ist natuerlich grundsaetzlich falsch. Ich hasse es, wenn Microsoft zur Verbloedung beitraegt - dass ist wieder das beste Beispiel dafuer: Schau Dir mal das an:
<html>
<head>
<script Language="JavaScript">
function jump(){
for(i=1;i<document.form1.menu.length;i++){
if(document.form1.menu.options[i].selected == true) alert(document.form1.menu.options[i].value);
}
// if(document.form1.menu.value == "") return;
// parent.produktnr = parseFloat(document.form1.menu.value);
// window.location = "Dateiname.htm";
// location.reload();
}
</script>
</head>
<body>
<form name="form1" method=POST>
<select name="menu" onChange="jump()">
<option selected value>(Bitte wählen Sie aus) </option>
<option value="1">Auswahl 1 </option>
<option value="2">Auswahl 2 </option>
<option value="3">Auswahl 3 </option>
</select>
</form>
</body>
</html>
Es ist EINDEUTIG FALSCH, dass man im Explorer mit document.form1.menu.value den Wert abfragen kann, den man ausgewaehlt hat. Dass ist kein Javascriptstandard, sondern wieder mal eine Schlamperei und etwas Microsofteigenes.
Viele Gruesse, Thomas Hieck
Sorry, dass ichs erst jetzt sehe, aber das ist natuerlich grundsaetzlich falsch. Ich hasse es, wenn Microsoft zur Verbloedung beitraegt - dass ist wieder das beste Beispiel dafuer: Schau Dir mal das an:
Es ist EINDEUTIG FALSCH, dass man im Explorer mit document.form1.menu.value den Wert abfragen kann, den man ausgewaehlt hat. Dass ist kein Javascriptstandard, sondern wieder mal eine Schlamperei und etwas Microsofteigenes.
Jau so isses glaub ich richtig oder ??
document.Form1.elements["menu"].options[document.Form1.elements["menu"].selectedIndex].value;
ist auch viel eleganter so wie einfach document.form1.menu.value :))
gruss
Jens