zugriff auf array feldnamen
sunar
- javascript
hallo,
angenommen ich habe ein formfeld wie folgt:
<input type="text" name="data[vorname]">
wie kann ich nun mit javascript auf dieses feld zugreifen, um beispielsweise den wert auszulesen ?
tia & mfg
sunar
Hi,
Du bewegst Dich mit der Zeile <input type="text" name="data[vorname]"> in HTML. HTML kennt keine Variablen oder gar Arrays. Um Arrays hier nutzen zu können, musst Du die Zeile selber mit JavaScript schreiben, etwa so:
document.write('<input type="text" name="' + data[vorname] + '">');
Das könntest Du dann wieder über z.B. document.forms[0].data[vorname].value (evtl. ist eval drumrum notwendig) auslesen.
Grüße,
Utz
Du bewegst Dich mit der Zeile <input type="text" name="data[vorname]"> in HTML.
sorry hab mich missverständlich ausgedrückt.
klar ist das kein "html array" und auch kein js array...
aber es wird teil eines php arrays nach dem submit ;-)
aber ich will eben trotzdem vor dem submit per js auf diese felder zugreifen können...darum gehts ;-)
mfg
sunar
aber ich will eben trotzdem vor dem submit per js auf diese felder zugreifen können...darum gehts ;-)
habs jetzt fürs erste mal so gelöst:
function zahlungsweise()
{
if (document.sub4.elements[3].options[1].selected){
with (document.sub4) {
for (var i=0; i < elements.length; i++) {
if (elements[i].id == 'bankdata'){
elements[i].readOnly = true;
elements[i].style.backgroundColor='cccccc';
}
}
}
}
}
mein problem ist damit gelöst, aber es würde mich für die zukunft trotzdem interessieren wie ich auf felder mit [ ] im namen zugreifen kann :)
mfg
sunar
Hallo,
mein problem ist damit gelöst, aber es würde mich für die zukunft trotzdem interessieren wie ich auf felder mit [ ] im namen zugreifen kann :)
Hmmm. Direkt geht's nicht. Probier's mal so (nicht getestet):
-----------------------------------------------------------------
function return_form_element (form_obj, elem_name) {
for (var i=0; i < form_obj.elements.length; i++) {
// hmmm - ich hab' jetzt einfach mal aus deinem
// Quelltext das mit .id übernommen, da das bei dir
// funktioniert aber gehört da nicht eigentlich .name hin?
if (form_obj.elements[i].id == elem_name){
return form_obj.elements[i];
}
}
return false;
}
[...]
mein_element = return_form_element(document.forms[0], 'data[vorname]');
[...]
-----------------------------------------------------------------
Grüße,
Christian
Ooops ....
hab' gerade http://forum.de.selfhtml.org/?m=107836&t=19156 gelesen. Dachte halt, elements[] wäre nur ein normaler und kein assoziativer Array. So kann man sich täuschen.
Grüße,
Christian
»»So kann man sich täuschen.
der wille zählt ;-)
Hallo.
<input type="text" name="data[vorname]">
wie kann ich nun mit javascript auf dieses feld zugreifen, um beispielsweise den wert auszulesen ?
document.forms[0].elements["data[vorname]"].value
Gruß
Norbert
document.forms[0].elements["data[vorname]"].value
dankeschön, funktioniert 1a :)