input type='text' auslesen
norbert
- java
0 Steel0 EKKi- javascript
0 Steel
Hallo,
innerhalb der form name='kdreg'... habe ich folgenden input Tag:
<input type ="text" name="rabatt[<?echo $kd[id] ?>]" size="2">
mit einer function möchte ich nun dieses Feld auslesen:
function regok(j){
var r = document.forms['kdreg'].rabatt[j].value;
alert(r);
}
rufe ich die function auf kommt folgender Fehler:
document.forms.kdreg.rabatt is undefined.
Der Schlüssel j existiert im array rabatt.
Vermutlich übergebe ich j falsch.
Wie geht das richtig?
gruß norbert
Hi!
Du fragst rabatt[x], also suchst nach dem xten element mit dem Namen rabatt. Du vergibst aber name="rabatt[<?echo $kd[id] ?>]". Was immer dort in deinem Browser steht (ich nehme mal an, das ist nicht was im Browser ankommt, sondern irgendein php code), weisst nur Du.
Hi!
Du fragst rabatt[x], also suchst nach dem xten element mit dem Namen rabatt. Du vergibst aber name="rabatt[<?echo $kd[id] ?>]". Was immer dort in deinem Browser steht (ich nehme mal an, das ist nicht was im Browser ankommt, sondern irgendein php code), weisst nur Du.
OK, setze name="rabatt[2]" und bei function(j) j ebenfalls =2.
Dass dem so ist, habe ich überprüft.
geht halt nicht :o(
Mein Hint, war zugegebenermassen sehr minimalistisch:
<http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=Regeln zur Namensvergabe in HTML>
<http://de.selfhtml.org/javascript/objekte/elements.htm@title=Formularelemente in JS>
aus name="rabatt" wird auch mit rabatt[x] ein Schuh.
Mein Hint, war zugegebenermassen sehr minimalistisch:
<http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=Regeln zur Namensvergabe in HTML>
<http://de.selfhtml.org/javascript/objekte/elements.htm@title=Formularelemente in JS>
aus name="rabatt" wird auch mit rabatt[x] ein Schuh.
Du kennst die Sitution, in der man den berühmten Wald vor lauter Bäumen nicht mehr sieht?
Ich sehs einfach nicht ....
Du kennst die Sitution, in der man den berühmten Wald vor lauter Bäumen nicht mehr sieht?
Ich sehs einfach nicht ....
Klar kenn ich die. Warum stehen da Zahlen in eckigen Klammern an deinen Namen? Alle Elemente mit dem Namen "rabatt" im Formular "Formular" kann man mit Formular.rabatt[x].value auslesen. Warum vergibst Du also Namen wie "rabatt[2]"?
Da ist gleich zu 'Anfang' auf der <http://de.selfhtml.org/javascript/objekte/elements.htm@title=verlinkten Seite > ein Beispiel mit Radiobuttons.
Hi,
Klar kenn ich die. Warum stehen da Zahlen in eckigen Klammern an deinen Namen? Alle Elemente mit dem Namen "rabatt" im Formular "Formular" kann man mit Formular.rabatt[x].value auslesen. Warum vergibst Du also Namen wie "rabatt[2]"?
Es spricht doch nichts dagegen, solche Namen sind in HTML ja erlaubt.
Und PHP ist zu blöd, mehrere Werte mit demselben Namen zu einem Array zu machen, wenn der Name nicht schon eckige Klammern enthält, daher ist man, wenn man PHP verwendet, ggf. sogar dazu gezwungen, solche Namen zu verwenden.
cu,
Andreas
Es spricht doch nichts dagegen, solche Namen sind in HTML ja erlaubt.
Und PHP ist zu blöd, mehrere Werte mit demselben Namen zu einem Array zu machen, wenn der Name nicht schon eckige Klammern enthält, daher ist man, wenn man PHP verwendet, ggf. sogar dazu gezwungen, solche Namen zu verwenden.
Aber JS kommt nicht klar mit form.name[2] wenn der name wirklich "name[2]" ist. Wenn das wirklich (fuer z.B. php) benoetigt wird, muss man eben ein anderes Schema fuer den Zugriff benutzen. Da hat man ja die freie Wahl.
Hi,
Du kennst die Sitution, in der man den berühmten Wald vor lauter Bäumen nicht mehr sieht?
Ich kenne die Situation, in der jemand Holzfäller spielen will, der noch nicht mal weiss, was ein Baum ist.
MfG ChrisB
Hi,
<http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=Regeln zur Namensvergabe in HTML>
Dieser Abschnitt hat absolut nichts mit dem name-Attribut des input-Elements zu tun, da dieses (bei form-controls) nicht vom Typ NAME ist, sondern vom Typ CDATA - der passende Abschnitt ist also direkt über dem von Dir verlinkten.
cu,
Andreas
Mahlzeit norbert,
<input type ="text" name="rabatt[<?echo $kd[id] ?>]" size="2">
Bei Client-seitigen Problemen (und ein solches hast Du offenbar) ist Server-seitiger Code sinnfrei. Was steht also *wirklich* im HTML-Code?
Übrigens sind short_open_tags meistens eine *sehr* schlechte Idee ...
rufe ich die function auf kommt folgender Fehler:
document.forms.kdreg.rabatt is undefined.
Was genau steht zu der Zeit in der Variablen namens "j"?
MfG,
EKKi
Was genau steht zu der Zeit in der Variablen namens "j"?
da im Functionsaufruf und bei der Vergabe des Namens die gleiche Variable verwendet wird, steht in j zB. eine 2 genauso wie das Element rabatt[2] heisst.
Im Quelltext kann man das überprüfen. Der Funktion wird genauso wie dem Element rabatt die 2 mitgegeben.
Ich mach mal Feierabend. Vermutlich fällt mir die Lösung morgen wie Schuppen aus den Haaren.
Mahlzeit norbert,
da im Functionsaufruf und bei der Vergabe des Namens die gleiche Variable verwendet wird, steht in j zB. eine 2 genauso wie das Element rabatt[2] heisst.
Das heißt, dass das einzelne Formularelement also einen Namen wie "rabatt[2]" hat? Mittels <http://de.selfhtml.org/javascript/objekte/elements.htm@title=Schema 4> solltest Du darauf problemlos zugreifen können (wenn Du schon Namen benutzen willst/musst, die Klammern enthalten).
MfG,
EKKi
Mahlzeit norbert,
da im Functionsaufruf und bei der Vergabe des Namens die gleiche Variable verwendet wird, steht in j zB. eine 2 genauso wie das Element rabatt[2] heisst.
Das heißt, dass das einzelne Formularelement also einen Namen wie "rabatt[2]" hat? Mittels <http://de.selfhtml.org/javascript/objekte/elements.htm@title=Schema 4> solltest Du darauf problemlos zugreifen können (wenn Du schon Namen benutzen willst/musst, die Klammern enthalten).
Er liest die Angaben aber scheinbar nicht (richtig). Er versucht ja dauernd mit formular.rabatt[2] auf ein element mit name="rabatt[2]" zuzugreifen. Ich hab ja schon versucht ihm zu erklaeren, dass man mit rabatt[x] auf alle Elemente mit name="rabatt" zugreift.
@@EKKi:
nuqneH
<?echo $kd[id] ?>
Übrigens sind short_open_tags meistens eine *sehr* schlechte Idee ...
Und wennschon short, dennschon short! <?= $kd[id] ?>
Und was Cheatah sagte.
Und @EKKi: dies war eine Ergänzung, keine Erwiderung.
Qapla'
Mahlzeit Gunnar Bittersmann,
Und @EKKi: dies war eine Ergänzung, keine Erwiderung.
Natürlich ... diesmal hast Du mir ja nicht unterstellt, ich würde irgendetwas wollen, was eigentlich der Threaderöffner will.
MfG,
EKKi
Nochmal deutlich:
Du versuchst mit name[x] auf element x mit dem Namen "rabatt" zuzugreifen. Du hast aber kein Element mit dem Namen "rabatt" sondern Elemente mit Namen wie "rabatt[2]". Lass also das zuweisen der komischen Namen oder nimm die richtige Methode um auf die Dinger zuzugreifen, wenn Du schon aussergewoehnliche Zeichen im Namen verwenden musst.
<http://de.selfhtml.org/javascript/objekte/elements.htm@title=Zum 3. mal jetzt der Link auf das Behandeln von Formularelementen mit JS.>