Intelligentes Focus benötigt...

MichaelRadke

Mitglied
Hallo,

ich möchte das erste *sichtbare* Element eines Formulars focusieren. Ein

document.forms[0].elements[0].focus();

funktioniert nicht immer, denn es gibt in meiner Anwendung Formulare, bei denen ich auf *Hidden*-Felder nicht verzichten kann - diese stehen am Anfang, gleich nach dem Form-Tag.

Es geht auch nicht per "onload" im body-Tag, denn nicht jede Seite besitzt ein Formular. Also muss auch dieses geprüft werden. (ich include den Content in einer Nicht-Frame-basierenden Website).

Hat jemand eine Idee, wie das geht?

Gruß + Danke im Voraus!
Michael
 
Hallo...


gehe in einer Schleife alle Formularelemente durch und frage ihre Type-Eigenschaft ab. Ist diese nicht "hidden", gib dem Element den Focus und brich die Schleife ab.
 
Das doofe an der Sache ist : nicht jede ausgegebene Webseite hat ein Formular.

Die Seite wird mittels PHP-"include()" zusammengestrickt, das Javascript muss ja aber am Anfang stehen, zu einem Zeitpunkt wo noch nicht bekannt ist, ob es in der folgenden Ausgabe ein Formular geben wird.

Meine Versuche, festzustellen ob ein Formular existiert, sind bisher gescheitert - in js bin ich nicht wirklich bewandert.

Ein "typeof document.forms[0].elements[0]" gibt immer ein "undefined" zurück, ein "if (document.forms[0])" ebenfalls, *wie geht das bloß* ? ;-)

Wenn diese Hürde genommen ist, ist die Schleife sicher das geringste Übel...

Danke im Voraus!

Michael
 
Hi,

ruf eine Funktion zum Setzen des Focus im onLoad-Event des BODY-Tags auf
(z.B. <body onload="Fokus()">).

In der Funktion selbst prüfst Du zunächst, ob ein Formular existiert. Falls nicht, verlässt
Du die Funktion wieder.
Code:
if(!document.forms[0])
    return;
Wurde die Existenz eines Formulars festgestellt, kannst Du die Schleife
durchlaufen, das erste Nicht-Hidden-Element ermitteln und diesem den Focus
geben.

Ciao
Quaese
 

Neue Beiträge

Zurück