*jiriki*: Den Focus auf ein Formularelement setzen

Hallo Leute,

ich finds gerade nicht in meinem HTML-Buch:

Szenario: Normalerweise ist ja kein Feld angewählt, wenn ich eine Seite mit einem Formular lade.

Problem: Ich möchte nun, dass jedesmal bereits das Feld "Name" angewählt ist, sodass man im Endeffekt nur mit Tastatur nach und nach alle Namen für eine Geburtstagsdatenbank eingeben kann ohne bei jedem Hinzufügen eines neuen Namens und anschließendem Neuladen der Seite wieder mit der Maus das "Name"-Feld auswählen zu müssen.

Danke für Eure Hilfe!

*jiriki*

  1. Hallo jiriki,

    mit blabla.focus(); geht das wunderbar. Wenn du also irgendwo

    <input type="text" name="Vorname" />

    hast, schreibst du einfach

    <body onload="document.getElementById('Vorname').focus();">

    benji

    --
    © by benji
    ® by benji
      all rights reserved
    1. Klappt einwandfrei. Danke!

      1. Hallo jiriki !

        Klappt einwandfrei. Danke!

        Dann lese bitte mal den Beitrag von Tobias, [pref:t=66443&m=379106]. Ich habe aus versehen einen Druckfehler gemacht. Mit "getElementById("blabla")" kannst du z.B. auf <input id="blabla"> zugreifen. Stattdessen muss da aber

        document.getElementByName('vorname')[0].focus();

        hin !!! Also _bitte_ verbessern, auch wenn der IE es (Tobias hat das gesagt) "richtig" darstellt. Das "[0]" dahinter bezieht sich zu deiner Informationen auf das getElementByName, was nämlich ein Array ausgibt - da man ja z.B. schreiben kann:

        <input type="radio" name="bla" value="das hier">
         <input type="radio" name="bla" value="oder das">
         <input type="radio" name="bla" value="und das?">

        dann gibt document.getElementByName("bla")[1].value => "oder das" raus.
        (Mehr dazu in SelfHtml)

        benji

        --
        © by benji
        ® by benji
          all rights reserved
    2. Hallo benji,

      <input type="text" name="Vorname" />
      <body onload="document.getElementById('Vorname').focus();">

      Wie willst du mit getElementById auf ein Element zugreifen, das überhaupt keine id hat? wenn dann getElementsByName('Vorname') (oder über document.formname.elementname.focus()) - wenn der IE das mit getElementById trotzdem macht, ist das noch lange nicht richtig (der setzt den Fokus sogar auf ein Feld mit name="wert", wenn ein Feld mit id="wert" vorhanden ist (sofern das mit name früher auftaucht als das mit der id)).

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      1. Hallo Tobias !

        <input type="text" name="Vorname" />
        <body onload="document.getElementById('Vorname').focus();">
        Wie willst du mit getElementById auf ein Element zugreifen, das überhaupt keine id hat? wenn dann getElementsByName('Vorname') (oder über document.formname.elementname.focus()) - wenn der IE das mit getElementById trotzdem macht, ist das noch lange nicht richtig (der setzt den Fokus sogar auf ein Feld mit name="wert", wenn ein Feld mit id="wert" vorhanden ist (sofern das mit name früher auftaucht als das mit der id)).

        Oh ! Schuldigung, in meiner Hektik habe ich mich ganz verschrieben. _natürlich_ muss da getElementByName('Vorname')[0] hin - und nicht ..ById. Ob der IE da eine weitere "Schachstelle" hat oder sonstwas macht weiß ich nicht.

        benji

        --
        © by benji
        ® by benji
          all rights reserved
        1. Hallo benji,

          Oh ! Schuldigung, in meiner Hektik habe ich mich ganz verschrieben.

          wieso Hektik? lass dir doch Zeit mit dem Posten - dann kommen vielleicht auch lesenswertere Postings dabei raus.

          _natürlich_ muss da getElementByName('Vorname')[0] hin

          nö, muss es nicht - da muss getElementsByName('Vorname')[0] hin (bei dir fehlt ein 's') :-)

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
          1. Hallo Tobias,

            Oh ! Schuldigung, in meiner Hektik habe ich mich ganz verschrieben.
            wieso Hektik? lass dir doch Zeit mit dem Posten - dann kommen vielleicht auch lesenswertere Postings dabei raus.

            ja, aber ich habe eben keine Zeit, und dann kann ich halt auch nicht so viel schreiben ;-) [leider ist vorhin die Qualität des Beitrages draufgegangen]

            _natürlich_ muss da getElementByName('Vorname')[0] hin
            nö, muss es nicht - da muss getElementsByName('Vorname')[0] hin (bei dir fehlt ein 's') :-)

            siehst du ? Schon wieder ein Druckfehler.... Natürlich ein s. Sorry#2 ;-)

            benji

            --
            © by benji
            ® by benji
              all rights reserved
  2. Hello,

    und kann mir bei dieser Gelegenheit noch jemand verraten, wie man herausbekommt, welches Feld gerade den Focus hält?

    Das wäre Spitze!

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hallo Tom,

      und kann mir bei dieser Gelegenheit noch jemand verraten, wie
      man herausbekommt, welches Feld gerade den Focus hält?

      So ohne weiteres gar nicht. Du musst fuer jedes Element einen
      onfocus-Event und einen onblur-Event definieren, in denen du
      eine Variable (am besten wohl einen Hash) auf 1 setzt bzw. auf
      0 setzt. Alternativ eine String-Variable auf '' oder den Namen
      des Elements.

      Gruesse,
       CK

      --
      Kommt ein Vektor zur Drogenberatung: "Hilfe, ich bin linear abhaengig!"
      1. Hello,

        und kann mir bei dieser Gelegenheit noch jemand verraten, wie
        man herausbekommt, welches Feld gerade den Focus hält?

        So ohne weiteres gar nicht. Du musst fuer jedes Element einen
        onfocus-Event und einen onblur-Event definieren, in denen du
        eine Variable (am besten wohl einen Hash) auf 1 setzt bzw. auf
        0 setzt. Alternativ eine String-Variable auf '' oder den Namen
        des Elements.

        Also auf gut Deutsch: Mitschreiben... :-((

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Hallo Tom,

          Also auf gut Deutsch: Mitschreiben... :-((

          Korrekt.

          Gruesse,
           CK

          --
          Q: God, root, what's the difference?
          A: God is merciful.
    2. Hallo Tom,

      da onload kein element den focus hat, kannst du ne variable mit der id des elementes befüllen, das dann den focus erhält. musst halt in jedes element einen onfocus mit einbauen, um das zu tun.

      freundl. Grüße aus Berlin, Raik