javascipt focus
Tobias otto
- javascript
0 Harlequin0 Jonathan0 Tobias Otto0 ChrisB
Hallo,
ich möchte nach dem ich ein einem layer ein formular erstellt habe, dass das Inputfeld focusiert wird.
Leider klappts nicht so ganz.
Hier mein code
document.getElementById("usersearch").innerHTML = "<div style='position: absolute; padding: 5px; left: 100px; border: solid 1px; background: rgb(255,255,255); z-index: 99;'><form name='usersearch' method='post' action='index.php'><input type='text' name='user' id='userinput'/><input type='submit' value='suchen' /></form></div>";
document.getElementById("userinput").focus;
Yerf!
document.getElementById("userinput").focus;
'focus' ist eine Funktion und muss entsprechend benutzt werden:
document.getElementById("userinput").focus();
Gruß,
Harlequin
sorry,
habe natürlich in meine script es auch so geschrieben
document.getElementById("userinput").focus();
das input feld wird trotzdem nicht fokusiert
Hallo Tobias,
Rufst du das focus() direkt nach dem innerhtml auf? Dann könnte es sein, dass der Browser noch nicht so schnell war und alle elemente schon erstellt hat. Vielleicht wartest du mit setTimeout ein paar Millisekunden?
Eventuelle javascript-Fehler wären auch interessant. ;-)
Jonathan
Hallo,
ich bekomme keine Fehlermeldung.
Interessant ist auch warum
document.getElementById("userinput").value = "test";
funktioniert und
document.getElementById("userinput").focus();
nicht
Hi,
Interessant ist auch warum
document.getElementById("userinput").value = "test";
funktioniert und
document.getElementById("userinput").focus();
nicht
Wie Jonathan schon vermutete, koennte das ein Timing-Problem sein.
Sobald das Element "irgendwo" intern erzeugt worden ist, kannst du natuerlich an seinem value herumspielen.
Fokussieren kannst du es aber erst dann, wenn es auch wirklich ins DOM eingehaengt wurde, und vermutlich auch erst dann, wenn es von der Rendering-Engine *dargestellt* wird ...
MfG ChrisB