TOM: Abfrage ob Element Focus hat - geht das auch? Muss doch?

Hi

in SelfHTML steht bei den Eigenschaften von elements kein Focus, sondern nur bei Methoden.

Mh.. Aber wie frag ich jetzt ab, ob ein element den Focus hat oder nicht?

sowas wie if(document.form.element.focus) {}

TOM

  1. Aloha!

    in SelfHTML steht bei den Eigenschaften von elements kein Focus, sondern nur bei Methoden.

    Mh.. Aber wie frag ich jetzt ab, ob ein element den Focus hat oder nicht?

    sowas wie if(document.form.element.focus) {}

    Dieser Abfrage erscheint mir (und den Erfindern von Javascript) unsinnig, weil:

    Javascript arbeitet dann los, wenn der Benutzer irgendwas getan hat. Wenn ein Element den Focus kriegt, kann man onfocus mit Javascript losarbeiten. Wenn diese Tatsache später noch bekannt sein soll, kann man onfocus eine Variable setzen.

    Ich denke, zur Lösung deines Problemes ist es besser, du beschreibst, was du willst. Und zwar konkret und im Kontext, und nicht so allgemein.

    - Sven Rautenberg

    1. Hi

      Ja statt hier nen Roman zu schreiben was ich will, was dir auch nicht viel bringt und dir nur wertvolle Zeit stielt, finde ich mich damit ab, dass es das nicht gibt und speichert das in eine Variable wie du gemeint hast.

      Thx 4 ya help TOM

      1. Ahoi,

        es geht ;-)

        ich hab mich mal daran versucht:

        kleines Beispiel:

        <html>
        <head>
        </head>
        <body>
        <form name="f1" method="post">
        <input type="Text" name="a1" value="">
        <input type="Text" name="a2" value="">
        <input type="Text" name="a3" value="">
        <input type="Text" name="a4" value="">

        </form>

        <script language="JavaScript">
        <!--

        function showwho(num)
        {
        alert('element '+ document.f1.elements[num].name + ' hat den focus');
        }

        for(i=0;i<document.f1.elements.length;i++)
        {
        document.write('<script>function showit'+i+'() {showwho('+i+');}</script>');
        document.f1.elements[i].onfocus=eval('showit'+i);
        }
        //-->
        </script>
        <noscript></noscript>

        </body>
        </html>

        Statt dem alert, könnte man auch eine Variable setzten in der das Elemtent mit dem Focus steht, und diese bei Bedarf auslesen.

        Gruß

        ueps

        1. Hey ueps - das i ne nette Lösung, danke

          aber ich find das is komplizierter als wenn ich ne globale Variable nehm und die einfach bei onfocus auf true bzw. false setzte - immerhin handelt es sich ja nur um _EIN_ element.

          MfG TOM

          1. Hi,

            aber ich find das is komplizierter als wenn ich ne globale Variable nehm und die einfach bei onfocus auf true bzw. false setzte - immerhin handelt es sich ja nur um _EIN_ element.

            Achso, ich dachte du hast da unzählige Elemete die du überprüfen musst.

            Wenns nur eines ist, fährst du mit deiner Variante natürlich einfacher ;-)

            Gruß

            ueps

  2. Hallo,

    Mh.. Aber wie frag ich jetzt ab, ob ein element den Focus hat oder nicht?

    sowas wie if(document.form.element.focus) {}

    Entweder mit onfocus arbeiten oder falls das nur im IE laufen braucht, kann auch document.activeElement hilfreich sein (siehe Tipp 69 auf styleassistant.de).

    MfG, Thomas