Index eines Formular-Elementes herausbekommen
Frank B. aus E.
- javascript
Meine Frage ist eigentlich ganz simple: Wie kann ich herausbekommen welchen Index ein Element (z.B Checkbox) innerhalb eines Formulars hat. Sollte für beide Browser laufen. Als fällt soetwas wie sourceIndex schon mal raus.
Danke.
Wie kann ich herausbekommen welchen Index ein Element (z.B Checkbox) innerhalb eines Formulars hat. Sollte für beide Browser laufen. Als fällt soetwas wie sourceIndex schon mal raus.
Hallo!
Das erste Formular auf deiner Seite hat den Index 0, das zweite 1, usw.
Wenn du das entsprechende Element ansprechen willst, benutze einfach
document.Formularname[Nr des Feldes].value (z.Bsp)
Grüsse Markus
Uups!
Das erste Formular auf deiner Seite
Muss natürlich "Das erste Eingabefeld auf deiner Seite ..." heissen
Markus
--- der jetzt Feierabend macht, Zeit wird's
Hi,Markus
Die Felder des Formulars wird dynamisch in Abhängigkeit von einer eingegebene Zahl n-mal generiert/angezeigt. Folge: alle haben dadurch den gleichen Namen, was aber kein Problem ist, da ich über eine Schleife die Felder auslesen kann.
Eines dieser Felder ist eine Checkbox. Dessen Eigenschaft checked soll aber nur gesetzt werden wenn eine bestimmte bedingung erfüllt ist. Dabei soll nur diese Checkbox checked- oder nicht-checked gesetzt werden können. Das heißt ich muß wissen welche Nummer diese Checkbox in dem Formular hat.
document.Formularname[Nr des Feldes].value (z.Bsp)
würde also nicht funtionieren da ich die Nr. des feldes nicht weiß, denn genau die will ich ja wissen. Das Objekt auf das geklickt wurdebekomme ich ja über this heraus.
kurzer Auszug aus dem Quellcode:
for (i=0;i<anzahl;i++)
{
document.writeln("<input type='Text' name='input' size='5'>")
document.writeln("<input type='Checkbox' name='checkbox' value='ja' onclick='check_cb(this);'>Texterläuterung");
...
}
Frank B. aus E.
hallo frank;
Die Felder des Formulars wird dynamisch in Abhängigkeit von
einer eingegebene Zahl n-mal generiert/angezeigt.
Folge:
alle haben dadurch den gleichen Namen, was aber kein Problem ist,
da ich über eine Schleife die Felder auslesen kann.
die elemente deines formulars muessen nicht zwangslaeufig den
gleichen namen erhalten;
Dein scriptauszug legt nahe, dass Du die volle kontrolle ueber
das dynamische erzeugen eines formulars besitzt - dieses script
sollte deshalb wie folgt umgeschrieben werden:
geaenderter Auszug aus dem Quellcode:
for (i=0;i<anzahl;i++)
{
document.writeln("<input type='Text' name='input_"+i+"' size='5'>");
document.writeln("<input type='Checkbox' name='checkbox_"+i+"' value='ja' onclick='check_cb(this);'>Texterlaeuterung");
...
}
Eines dieser Felder ist eine Checkbox. Dessen Eigenschaft checked
soll aber nur gesetzt werden wenn eine bestimmte bedingung erfüllt
ist. Dabei soll nur diese Checkbox checked- oder nicht-checked
gesetzt werden können. Das heißt ich muß wissen welche Nummer diese
Checkbox in dem Formular hat.
jetzt weisst Du es und musst nur noch eine funktion schreiben, die
die nummer N des feldes "input_N" (das mit der richtigen bedingung)
herausfindet und die dazugehoerige checkbox "checkbox_N" auf
checked = true setzt;
ein anderer loesungsansatz liegt ebenfalls in muster der
formulargenerierung versteckt:
alle formularelemente die vom typ input sind koennten mit
geraden zahlen von [0] bis [2*i] benannt werden,
alle formularelemente vom typ checkbox werden dann mit
ungeraden zahlen von [1] bis [2*(i+1)] benannt;
mit diesem muster kannst Du ebenfalls einem eindeutig
benannten input die dazugehoerige eindeutig benannte
checkbox zuordnen;
falls Du nicht weisst, was ich meine poste zurueck - ich schau noch mal vorbei;
tschuess - peter - pseliger@gmx.net
Hi Peter,
Deine Nachricht habe ich erst gelesen nachdem ich meinen letzte Mail geschrieben habe, welche somit hinfällig geworden ist. Du hast alle meine Fragen beantwortet. Tausend Dank, das hatte ich auch schon ausprobiert (..+i+...), war aber anscheinend zu blöd die ganzen Hochkommas richtig zu setzen, weswegen ich diese Variante als fehlerhaft ansah. Du hast mir den richtigen Weg gezeigt.
Vielen Dank nochmal.
Frank B. aus E.
for (i=0;i<anzahl;i++)
{
»» document.writeln("<input type='Text' name='input' size='5'>")
»» document.writeln("<input type='Checkbox' name='checkbox' value='ja' onclick='check_cb(this);'>Texterläuterung");
...
}
hallo
for(i=0;i<anzahl;i++)
{
if(document.Formular[i].type="checkbox")
{
//setze auf Checked
}
}
Grüsse
Miraldo
for(i=0;i<anzahl;i++)
{
if(document.Formular[i].type="checkbox")
{
//setze auf Checked
}
}
..is natürlich a schwachsinn
for(i0;i<anzahl;i++)
{
if(document.Formular.elements[i].type=="checkbox")
{
//Setze auf Checked
}
}
so, jetzt geh ich nach hause
schönen tag noch
Miraldo
for(i=0;i<anzahl;i++)
{
if(document.Formular[i].type="checkbox")
{
//setze auf Checked
}
}
Grüsse
Miraldo
Hi, Miraldo
der Wert von i ist genau das was ich wissen will
als ergänzung zu meinen vorherigen Mails:
Es gibt mehrere Checkboxen (bei Anzahl>1) mit dem selben Namen, da diese x-mal erzeugt werden.
Wenn auf eine Checkbox geklick wird wir folgendes Skript aufgrufen:
function check(w)
{
if (bedingung nicht erfüllt)
document.formular.elements[???Nr der angeklickten Objektes w (Checkbox)???].checked=false;
}
die Variable w beinhaltet das Objekt. Nun könnte ich ja mit w.name den Namen herausbekommen, da aber alle den selben Namen haben geht das nicht. da aber jedes Objekt in einem Formular eine eindeutige Nummer hat könnte ich mit dessen Nummer weiterarbeiten. Ich habe immer Schwierigkeiten mein problem zu formulieren, ich hoffe es wird so langsam verständlicher. Vielleicht gehts ja auch nicht, dann müßte ich mir etwas anderes einfallen lassen.
Vielleicht hat ja jemand eine Idee wie ich mit JavaScript variable Element-Namen erzeuge (z.B. ... name='feld' +i..., oder so jedenfalls )
Frank B. aus E.