Input Focus bei display: none;

Thomas_Jung

Erfahrenes Mitglied
Hallo

Kann mir jemand sagen wie ich den Code ändern muß das er funktioniert. (Falls das überhaupt möglich ist.) :)

Code:
<a href="#" onclick='document.getElementById("div1").style.display = (document.getElementById("div1").style.display == "none")?"block":"none";
					document.getElementById("div2").style.display ="none"'>SEITE</a>

<div id="div1" style="display: none; position: absolute; top: 100px; height: 100px; width: 100px; border: solid 1px #000000;">
SEITE <input name="page" id="page" type="text" size="2" maxlength="3" />
</div>
<script type="text/javascript">
<!--
 document.getElementById('page').focus();
//-->
</script>

Gruß Thomas
 

Sven Mintel

Mitglied
Moin Thomas,

um den Thementitel zu Beantworten: Das geht nicht :)
Etwas nicht angezeigtes kann keinen Focus haben(der IE belohnt den Versuch sogar mit einer diesbetreffenden Fehlermeldung).

Um die Frage selbst zu Beantworten, wie man es trotzdem zum Laufen bekommt:

Füge dies am Ende deiner onclick-Anweisung des Links hinzu:
Code:
try{document.getElementById("page").focus();}catch(e){}

...es "versucht", den Fokus zu setzen, wenn das <input> in der Anweisung davor sichtbar gemacht wurde, erthält es auch den Fokus, ansonsten ist es ja eh wurscht :suspekt:
 

Thomas_Jung

Erfahrenes Mitglied
HI Sven

Im IE kommt der Fehler das ein Objekt erforderlich ist. :confused:

Gruß Thomas

Code:
<a href="#" onclick='document.getElementById("div1").style.display = (document.getElementById("div1").style.display == "none")?"block":"none"; document.getElementById("div2").style.display ="none"; try{document.getElementById("page").focus(); }catch(e){};'>SEITE</a>


<div id="div1" style="display: none; position: absolute; top: 100px; height: 100px; width: 100px; border: solid 1px #000000;">
SEITE <input name="page" id="page" type="text" size="2" maxlength="3" />
</div>
 

Sven Mintel

Mitglied
Jo, wenn sich bei dir nicht irgendwo etwas mit der ID div2 versteckt hat, kommt da ein Fehler.
Code:
document.getElementById("div2").style.display ="none";
 

Neue Beiträge