style.visibility Problem IE
Eurosystem
- html
0 Novi0 Eurosystem0 ChrisB0 Eurosystem0 Der Martin0 Eurosystem0 Der Martin0 Eurosystem0 ChrisB
Hallo,
Mit folgendem Code habe ich ein Problem:
<img src="bilder/beispiel.jpg" onclick="kasten1.value='Text'; kasten2.style.visibility='visible'; "
>
Wenn man also auf das Bild klickt soll in einem Kasten ein Text stehen und ein anderer, bisher unsichtbarer, soll sichtbar werden.
Im Webbrowser Opera funktioniert dies einwandfrei, im IE 7 wird jedoch nur der Text in 'kasten1' gesetzt, 'kasten2' bleibt unsichtbar...
Kann man den Code umschreiben oder kennt jemand eine Alternative?
Gruß
Eurosystem
Hallo,
wie greifst du auf die Elemente zu?
Wenn du per Id drauf zugreifst, dann benutze auch document.getElementById().
Viele Grüße Novi
Nein, per "name='kasten1'".
Was mich vor allem wundert ist ja dass die Value-Funktion funktioniert aber die style.visibility nicht...
Gruß
Eurosystem
Hi,
Nein, per "name='kasten1'".
Das mag irgendwas sein, was in deinem HTML steht.
Die Frage war, was du in deinem JavaScript-Code gemacht hast, damit ein JavaScript-Objekt mit dem Namen kasten1 bzw. kasten2 existiert.
Was mich vor allem wundert ist ja dass die Value-Funktion funktioniert aber die style.visibility nicht...
Das lässt sich aus dem minimalen Codefetzen so kaum erkennen.
MfG ChrisB
Hallo,
also der gesamte Code sieht so aus:
<img src="bilder/beispiel.jpg" width="65" onclick="kasten1.value='Text'; kasten2.style.visibility='visible';">
<input type="password" name="kasten1" style="visibility:hidden; background-color:black; width:0px; height:0px;" value="" >
<div name="kasten2" style="visibility:hidden; color:green; font-size:16px; "><b>Gewählt</b></div>
Gruß
Eurosystem
Hi,
<img src="bilder/beispiel.jpg" width="65" onclick="kasten1.value='Text'; kasten2.style.visibility='visible';">
<input type="password" name="kasten1" style="visibility:hidden; background-color:black; width:0px; height:0px;" value="" >
<div name="kasten2" style="visibility:hidden; color:green; font-size:16px; "><b>Gewählt</b></div>
damit bleibt immer noch die Frage von ChrisB unbeantwortet:
> Die Frage war, was du in deinem JavaScript-Code gemacht hast, damit ein JavaScript-Objekt mit dem Namen kasten1 bzw. kasten2 existiert.
Es könnte natürlich sein, dass du mit dem IE testest. Der hat die böse Angewohnheit, für alle HTML-Elemente mit einem name- oder id-Attribut gleich ein globales gleichnamiges Javascript-Objekt anzulegen. Das ist nicht fein; ordentliche Browser machen das nicht.
Dafür ist der IE aber wenigstens so anständig, ein name-Attribut nur bei den Elementen zu beachten, die auch eins haben dürfen. Ein div-Element darf das nicht. Der obige Code würde also in einem IE zu dem von dir beschriebenen Verhalten führen: Das input-Element mit name="kasten1" wäre mit Javascript automatisch ansprechbar, das div-Element mit dem unerlaubten name-Attribut nicht.
Ciao,
Martin
--
Denken ist wohl die schwerste Arbeit, die es gibt. Deshalb beschäftigen sich auch nur wenige damit.
(Henry Ford, amerikanischer Industriepionier)
OK, ich wusste nicht das ein div-element keinen Namen haben darf.
Mit id='kasten2' klappts.
Vielen Dank!
Gruß
Eurosystem
Hallo,
OK, ich wusste nicht das ein div-element keinen Namen haben darf.
Mit id='kasten2' klappts.
ohne Ergänzungen am Javascript-Code?
Dann teste mal im Firefox. Der nimmt's nämlich genau und wird dir um die Ohren hauen, dass keine Objekte mit den Namen kasten1 und kasten2 existieren.
Dass Opera einige Bugs des IE emuliert, war mir bekannt.
Dass die ungebetene Verschmutzung des globalen Scopes dazugehört, allerdings nicht.
Ciao,
Martin
Hallo,
Opera war ja noch schlimmer, das hat sogar den div-Namen akzeptiert :)
Ich kenne mich nicht gut mit javascript aus, wie kann ich denn sagen welche Namen die division haben soll? Muss ich nur die Funktion document.get.elementbyid() hinzufügen?
Gruß
Eurosystem
Hi,
Ich kenne mich nicht gut mit javascript aus, wie kann ich denn sagen welche Namen die division haben soll?
Gar nicht, weil DIV kein name-Attribut hat.
Muss ich nur die Funktion document.get.elementbyid() hinzufügen?
Wenn du ein Element, dem du eine ID gegeben hast, ansprechen willst, ist das eine gängige Möglichkeit, ja.
MfG ChrisB