Horst Nogajski: kriege Objektreferenz zu Formular in Div-Tag nicht hin :-(

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

  1. 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

  2. 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