Tobias otto: javascipt focus

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;

  1. Yerf!

    document.getElementById("userinput").focus;

    'focus' ist eine Funktion und muss entsprechend benutzt werden:

    document.getElementById("userinput").focus();

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. sorry,

      habe natürlich in meine script es auch so geschrieben
      document.getElementById("userinput").focus();

      das input feld wird trotzdem nicht fokusiert

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

    1. Hallo,

      ich bekomme keine Fehlermeldung.
      Interessant ist auch warum
      document.getElementById("userinput").value = "test";
      funktioniert und
      document.getElementById("userinput").focus();
      nicht

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