Radio-Button innerhalb eines Formular Arrays ansprechen
Michael Neubert
- javascript
Hi,
das Ansprechen eines Radio-Buttons innerhalb eines Formular Arrays führt bei mir zu ständigen Fehlermeldungen.
Beispielsyntax:
<form name="test" action="test.php" method="post">
<input type="text" name="daten[geburtstag]" size="10">
<input type="radio" name="daten[kontakt]" value="0"> nie<br>
<input type="radio" name="daten[kontakt]" value="1"> immer<br>
<input type="radio" name="daten[kontakt]" value="2"> manchmal<br>
</form>
Mit Java Script möchte ich nun ein Feld innerhalb des Formulars Fokusieren. Mit dem Textfeld geht das ohne Probleme mit:
document.test['daten[geburtstag]'].focus();
Leider ist es mir aber nicht gelungen, einen Radio-Button zu fokusieren:
document.test['daten[['geburtstag[1]']]'].focus();
Dies führt zu Fehlermeldungen. Das spätere auslesen des Radio-Buttons per PHP ist kein Problem ($daten[kontakt]), nur das Fokusieren funktioniert eben nicht.
Vielleicht kann mir ja jemand helfen.
Danke im Vorraus.
Michael N.
Hallo Michael,
versuch es mal mit document.test.daten['geburtstag'][1].focus();
Gruß Ralf
Hallo Michael,
versuch es mal mit document.test.daten['geburtstag'][1].focus();
Gruß Ralf
Hallo Ralf,
klappt leider auch nicht. Folgende Konstrukte scheiterten bisher:
document.test['daten[['kontakt[1]']]'].focus();
document.test['daten[kontakt][1]'].focus();
document.test.daten['kontakt'][1].focus();
document.test.daten['kontakt[1]'].focus();
Gruß
Michael
Moin!
Folgende Konstrukte scheiterten bisher:
document.test['daten[['kontakt[1]']]'].focus();
Das klappt wegen mangelhafter '-Escapung nicht.
document.test['daten[kontakt][1]'].focus();
Es gibt kein Element, welches <input name="daten[kontakt][1]" ...> ist.
document.test.daten['kontakt'][1].focus();
Es gibt kein Element, welches im Formular test enthalten ist, name="daten" heißt, ein Array-Unterelement namens 'kontakt' besitzt, welches wiederum ein Array-Unterelement "1" besitzt.
document.test.daten['kontakt[1]'].focus();
Es gibt kein Element im Formular test, welches name="daten" heißt und ein Array-Unterelement namens 'kontakt[1]' besitzt.
- Sven Rautenberg
Moin!
<input type="radio" name="daten[kontakt]" value="2"> manchmal<br>
document.test['daten[['geburtstag[1]']]'].focus();
Punkt 1: Deine Radio-Buttons heißen "daten[kontakt]", nicht "daten[['geburstag[1]']]".
Punkt 2: Du solltest dich für einen Stringbegrenzer entscheiden (hier hast du ' genommen, und mußt dann jedes Auftreten dieses Stringbegrenzers innerhalb des Strings mit dem Backslash escapen, damit der String nicht schon wieder beendet wird.
Du greifst also auf document.test['daten[[' zu, und geburtstag[1]']]'].focus() ist eine unverständliche Anweisung.
- Sven Rautenberg
Hi,
Moin!
<input type="radio" name="daten[kontakt]" value="2"> manchmal<br>
document.test['daten[['geburtstag[1]']]'].focus();
Punkt 1: Deine Radio-Buttons heißen "daten[kontakt]", nicht "daten[['geburstag[1]']]".
Sorry, mein Fehler. Hatte mich im Posting verschrieben. Im Sourcecode stand natürlich "Kontakt".
Punkt 2: Du solltest dich für einen Stringbegrenzer entscheiden (hier hast du ' genommen, und mußt dann jedes Auftreten dieses Stringbegrenzers innerhalb des Strings mit dem Backslash escapen, damit der String nicht schon wieder beendet wird.
Du greifst also auf document.test['daten[[' zu, und geburtstag[1]']]'].focus() ist eine unverständliche Anweisung.
- Sven Rautenberg
Ich habe folgendes ausprobiert:
document.test['daten[['kontakt[1]']]'].focus();
Hat leider auch nicht geholfen.
Gruß
Michael
Moin!
Ich habe folgendes ausprobiert:
document.test['daten[['kontakt[1]']]'].focus();Hat leider auch nicht geholfen.
Logisch, denn das Feld-Array heißt ja auch "daten[kontakt]", und nicht "daten[['kontakt[1]']]"
Der Name ist also falsch. Außerdem willst du ein einzelnes Element dieses Arrays ansprechen - das macht man, indem man _hinter_ dem Namen noch einen Array-Index angibt.
document.test['daten[kontakt]'][1].focus() ist das, was du oben unglücklich versucht hattest auszudrücken. Da gebe ich aber noch keine Garantie drauf, dass das jetzt geht.
- Sven Rautenberg
Hi,
vielen Dank. Dein Vorschlag hat funktioniert:
document.test['daten[kontakt]'][1].focus();
Ich glaub jetzt weiß ich auch, wo mein Denkfehler innerhalb der Datenstruktur lag .. :-)
Gruß
Michael