focus in ein feld
3dt
- html
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
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
Hi,
Die JavaScript variante kenne ich...
Wie geht die? Nur falls Du's grad zur Hand hast, koennt ich grad gut gebrauchen ...
Eddie
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
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
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
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
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.
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
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
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
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