kriege Objektreferenz zu Formular in Div-Tag nicht hin :-(
Horst Nogajski
- javascript
Hallo zusammen,
es ist mir ein bißchen peinlich, aber ich raff's nicht. Deshalb meine Frage:
Wie kann ich ein Formularelement ansprechen, das sich in einem mit <div> definierten Layer befindet.
Der IE findets. Der Netscape findets nicht.
Wenn das Formular sich im Body (also nicht im div-layer) befindet klappts auch mit dem Netscape. Der Ausdruck ist dann:
var id = document.meinformular.meinelement.selectedIndex;
var wert = document.meinformular.meinelement.options[id].value;
Und wenn ich das Formular in folgenden Layer packe:
<body>
<div id="MeinLayer" style="position:absolute; left:100px; top:100px; width:500px; height:320px; z-index:21; background-color: #003366; layer-background-color: #003366; border: 1px none #000000; visibility: hidden">
<!-- hier Formular -->
</div>
</body>
.... dann krieg ich's nicht mehr hin. |-(
Ich freue mich auf Eure Hilfe,
Horst
So sollte man es nicht machen - Man sollte zumindest den Tag des Formulars anschreiben
aber egal - der Fehler ist aber klar - wenn das Formular im DIV ist ist es kein Mitglied mehr von document sondern von document.MeinLayer ... :-) ein sogenanntes OOPs Problem ...
im Übrigen ist es sicherer sich das Formular so zu holen
var f = document.forms["meinformular"];
mfg
Wenn das Formular sich im Body (also nicht im div-layer) befindet klappts auch mit dem Netscape. Der Ausdruck ist dann:
var id = document.meinformular.meinelement.selectedIndex;
var wert = document.meinformular.meinelement.options[id].value;
Netscape 4 (nicht 6) sieht Layer als Dokumente im Dokument an.
Zugriff also per
document.layers['layerid'].document.inhalt...
statt
document.inhalt...
Das gleiche gilt auch für Mouseover-Effekte in Layern:
document.images geht nicht, sondern
document.layers['layerid'].document.images
layerid ist die ID des Layers, die mit id="layerid" vergeben wurde.
- Sven Rautenberg