Problem mit Focus und Inputfeldern

Ralph

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem.

Es gibt ein Formular, welches mehrer Inputboxen enthält, die alle als Namen "werte[]" bekommen haben.

Nun soll beim Seiten laden bzw, noch besser beim Submit des Formulars (Weil es 2 Formulare auf der Seite gibt) der Focus im ersten Eingabefeld landen.

Ich habs mit

PHP:
onload="javascript: document.form2.werte[].focus()"

im body-Tag versucht, aber der Cursor zeigt sich nicht. Sprech ich das Feld falsch an oder wo ist der Hund begraben ? Formularname ist auch richtig. Und eine Fehlermeldung gibts es auch nicht :/
 
Also entweder du hast hier beim Schreiben den Index für werte[] vergessen oder du hast ihn in deinem Script vergessen.

Falls letzteres der Fall ist, dann benennst du alle Input-Felder gleich. Wie soll denn dann der Browser wissen, welches Input-Feld er fokusieren soll?

Du musst die Felder also schon durchnumerieren, dann kannst du über einen Index auch ein konkretes Feld ansprechen.

Gruß
Falk
 
Du musst die Felder also schon durchnumerieren, dann kannst du über einen Index auch ein konkretes Feld ansprechen.
Elemente mit dem gleichen Namensattribut nummeriert der Browser doch selbstständig durch...?

Also mit viel Glück klappt's bei folgender Variante:
PHP:
<body onLoad="document.form2.werte[][0].focus()" ...>
aber das dürfte die JS-Engine schon einiges an Überwindung kosten, denke ich - die eckigen Klammern sind nun einfach mal Zugriffsoperatoren und nicht für Namen bestimmt, sondern erwarten dass sie zu einem Objekt gehören.

Warum kannst du deine Elemente nicht wenigstens alle "werte" benennen, sondern "werte[]"?

Gleiche Namen für Elemente sind übrigens eher typisch für Radiobutton- oder Checkboxenreihen, bei denen keine Mehrfachauswahl möglich sein soll.

Grüßle,
Geist
 
Hallo,

Ich würds nach dem Schema document.forms[0].elements[0].focus(); versuchen. Natürlich mit den entsprechenden Indizies... Damit umgehst du die ganze Namesproblematik.

bye
 
Problem:

Wenn man gleiche Namen verteilt muss man das mit [] machen, um in PHP dann ein ARrray zu erhalten.

Wenn ich die Felder einfach "Werte" nenne, klappt es mit dem Focus ohne Probleme. Okay. Aber dann kann ich nich mehr auf die Inhalte zu greifen bzw weiß ich gerade nicht wie.

wichtig ich brauche unbedingt ein Array, weil das Formular dynamisch aus einer DB generiert wird und deshalb brauche ich zwingend Arrays, weil die Anzahl der Formularfelder ständig wechselt.


***UPDATE

;) So. Fertig. Jetzt auch endlich das mit dem elements[0] gelesen und verarbeitet. So funktioniert es.

Danke an alle für die Hilfe
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück