Den Focus auf ein Formularelement setzen
*jiriki*
- javascript
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*
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
Klappt einwandfrei. Danke!
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
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
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
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
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
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
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
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
Hallo Tom,
Also auf gut Deutsch: Mitschreiben... :-((
Korrekt.
Gruesse,
CK
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