3dt: focus in ein feld

Hallo,

Wie kann ich wenn ich zB zwei felder habe in ein Feld beim Seitenaufruf standartmäßig den focus/cursor reinsetzen so dass der besucher gleich lostippen kann ?
Die JavaScript variante kenne ich... aber geht das auch mit reinem HTML ?

Grüße
3dT

  1. Hi,

    Die JavaScript variante kenne ich... aber geht das auch mit reinem HTML ?

    nein. HTML ist keine Programmiersprache und zu keinerlei Dynamik oder (Inter-)Aktion fähig.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Die JavaScript variante kenne ich...

    Wie geht die? Nur falls Du's grad zur Hand hast, koennt ich grad gut gebrauchen ...

    Eddie

    1. Hi Eddie,

      Die JavaScript variante kenne ich...
      Wie geht die? Nur falls Du's grad zur Hand hast, koennt ich grad gut gebrauchen ...

      So funktionierts bei eingeschaltetem JavaScript:
      <body onLoad="document.Formularname.Feldname.focus()">

      Viele Grüße
      Torsten

      1. Hallo allerseits,

        <body onLoad="document.Formularname.Feldname.focus()">

        funktioniert zwar, nur frage ich mich, ob das auch anders geht?

        Meine Seite wird komponentenweise dynamisch zusammengestoepselt. D.h. die Komponente "Anmeldefeld" ist nicht immer vorhanden.
        Am besten waere es also, z.B. im <Form>-Tag so eine Anweisung stehen zu haben (oder eben sonstwo, außer im Body-Tag).

        Habt ihr eine Idee?

        Danke, Eddie

        1. Hi Eddie,

          <body onLoad="document.Formularname.Feldname.focus()">
          funktioniert zwar, nur frage ich mich, ob das auch anders geht?

          Das sollte auch funktionieren, wenn du einen anderen Eventhandler nimmst, sieh dir mal die verschiedenen Beispiele hier an:
          http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm

          Es kommt halt darauf an, was bei welchem Ereignis passieren soll, dann notiere an der der entsprechenden Stelle eben den entsprechenden Eventhandler und setze dann den Focus auf das Element deiner Wahl. Im form-Tag böte sich bspw. onSubmit an. Mehr kann man aus meiner Sicht ohne weitere Details nicht sagen.

          Viele Grüße
          Torsten

          1. Hi Torsten,
            danke Dir, aber wenn's nicht direkt beim Laden moeglich ist, den Cursor zu setzen, macht's keinen Sinn.

            Ich habe bei der aktuellen Infrastruktur meines Projekts exakt 2 Möglichkeiten, JavaScript einzubinden:

            • direkt am betroffenen Tag oder an Tags in seiner Umgebung, also in diesem Fall am <form>-Tag, am <input> und an allen anderen Tags innerhalb von <form> (z.B. <div> usw.)

            • und global kann ich JavaScript-Dateien dynamisch im Header einfuegen. Das heisst, ich sage meinem Hauptscript: "pass auf, jetzt brauche ich './bla/blablub.js', bau mir das rein".

            Wenn ich aber bereits im Header den Befehl

            document.registrationForm.userName.focus();

            stehen habe, dann passiert garnichts, noch nichtmal eine Fehlermeldung.

            Das muesste aber doch irgendwie gehen?
            Eddie

            1. Hi,

              danke Dir, aber wenn's nicht direkt beim Laden moeglich ist, den Cursor zu setzen, macht's keinen Sinn.

              eine JavaScript-Funktion ist grundsätzlich unabhängig davon, wann oder wodurch sie aufgerufen wird. Wenn es mit einem Event-Handler geht, geht's auch ohne.[1] Zu beachten ist hier lediglich, dass das Eingabefeld bereits existieren muss, sonst kann man es natürlich nicht fokussieren - und es muss sichergestellt sein, dass nichts später den Fokus woanders hin setzt.

              Wenn ich aber bereits im Header den Befehl
              document.registrationForm.userName.focus();
              stehen habe, dann passiert garnichts, noch nichtmal eine Fehlermeldung.

              Das ist schlecht, denn an der Stelle _muss_ der Browser den Fehler erkennen, dass document.registrationForm keine Properties hat.

              Cheatah

              [1] Ob's sinnvoll ist, muss im Einzelfall betrachtet werden.

              --
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
            2. Hi Eddie,

              danke Dir, aber wenn's nicht direkt beim Laden moeglich ist, den Cursor zu setzen, macht's keinen Sinn.

              Grundsätzlich sollte es aber auch möglich sein, den Fokus ohne Eventhandler zu setzen. Also einfach einen Scriptbereich nach dem Formular einzufügen:

              <form name="Formularname" ...>
                ...
                <input type="text" name="Feldname" ...>
                ...
              </form>
              <script type="text/javascript">
              <!--
               document.Formularname.Feldname.focus();
              //-->
              </script>

              Vielleicht hilfts
              Torsten

              1. Hi,
                danke Euch beiden, jetzt geht's zumindest mit Mozilla, mit IE 5.5 und Opera 6.01 geht's nicht, mit anderen versuch ich's, sobald ich wieder an einem anderen Rechner sitze. Aber immerhin!
                Thanx, Eddie

          2. hi,

            Es kommt halt darauf an, was bei welchem Ereignis passieren soll, dann notiere an der der entsprechenden Stelle eben den entsprechenden Eventhandler und setze dann den Focus auf das Element deiner Wahl. Im form-Tag böte sich bspw. onSubmit an.

            nicht wirklich.
            wenn du beim _absenden_ des formulars den fokus noch mal schnell auf ein eingabefeld setzt, sehe ich nicht wie das den kofort für den benutzer verbessern soll ...

            gruss,
            wahsaga

            1. Hi wahsaga,

              nicht wirklich.
              wenn du beim _absenden_ des formulars den fokus noch mal schnell auf ein eingabefeld setzt, sehe ich nicht wie das den kofort für den benutzer verbessern soll ...

              War doch nur ein Beispiel, zugegebenermaßen kein besonders glückliches ;)

              Viele Grüße
              Torsten