Formularfeld auslesen!
p@t
- javascript
0 Selfhtml lesen!
Mirko0 Bernhard Peissl0 p@t
0 JP0 JP
ich gebs bald auf mit dem *!'Ö netscape4.x!
ich möchte aus einem dropdown feld die gewählte value auslesen,
dazu habe ich per link auf eine funktion verwiesen, die folgenden
wert = document.rechner.groesse.options.selectedIndex.value;
also im ie und nn6 gehts, nn4 macht mal garnichts und gibt mir die
fehlermeldung document.rechner has no properties aus!
wieso denn? ich habe ganz brav mein formular benannt und ebenso die
felder darin.
kann mir noch mal jemand genau schildern was es denn mit diesem
"has no properties" auf sich hat? was soll das, "hat keinen besitz?"
würde mich freuen wenn morgen früh jemand eine paar zeilen dazu schreiben
könnte. ich hab jetzt die schnauze voll und schlaf mal drüber!
cheerio
p@
wert = document.rechner.groesse.options.selectedIndex.value;
also im ie und nn6 gehts, nn4 macht mal garnichts und gibt mir die
fehlermeldung document.rechner has no properties aus!
wieso denn? ich habe ganz brav mein formular benannt und ebenso die
felder darin.
Ein bischen Sourcecode wäre nicht verkehrt.
kann mir noch mal jemand genau schildern was es denn mit diesem
"has no properties" auf sich hat? was soll das, "hat keinen besitz?"
Äh.. bist Du sicher, Du weißt, wie OOP funzt? Damit sind Eigentschaften bzw. weitere Unterobjekte gemeint.
Wenn er bis document.rechner kommt, heißt das, dass er das letztgenannte Objekt (in dem Fall: Dein Forumular nicht kennt). Das kannst Du selbst herausfinden, indem zu z.B. mal
javascript:alert(document.lala.huhu)
in die Locationzeile Deines Browsers tippst und dann in die JS Conosole guckst.
...
Ist das Form in einem Layer? Vielleicht hat NN auch Probs damit, 'nen Form direkt per document.NAME zu acessen (weiß grad' nicht genau). Versuch's mal mit
wert = document.forms['rechner'].groesse.options.selectedIndex.value; (geht nur, wenn's _nicht_ in 'nem Layer ist, ansonsten: )
wert = document.layers['LAYERNAME'].document.forms['rechner'].groesse.options.selectedIndex.value;
Mirko
Äh.. bist Du sicher, Du weißt, wie OOP funzt? Damit sind Eigentschaften bzw. weitere Unterobjekte gemeint.
ja ich glaube schon :)
Wenn er bis document.rechner kommt, heißt das, dass er das letztgenannte Objekt (in dem Fall: Dein Forumular nicht kennt). Das kannst Du selbst herausfinden, indem zu z.B. mal
ist mir auch klar
javascript:alert(document.lala.huhu)
macht ER nicht (nn4)
Ist das Form in einem Layer? Vielleicht hat NN auch Probs damit, 'nen Form direkt per document.NAME zu acessen (weiß grad' nicht genau). Versuch's mal mit
nein
wert = document.forms['rechner'].groesse.options.selectedIndex.value; (geht nur, wenn's _nicht_ in 'nem Layer ist, ansonsten: )
habe ich schon probiert
wert = document.layers['LAYERNAME'].document.forms['rechner'].groesse.options.selectedIndex.value;
muss nicht sein!
hallo mirko wenns nur so einfach wär dann hätte ich es vielleicht auch hinbekommen.
ist halt nunmal so das er nach allen regeln nicht will der netsi
(sollte ich vielleicht mal nen neuen drüber installlieren?)
grüße
p@
ES IST GEGLÜCKT!
habe jetzt halt doch ein crossbrowser script geschrieben und das formular
in einen layer gelegt!
leztzeres musste ich tun, weill sonst netscape 6 nicht zuließ die
felder mit der maus zu betätigen, weil ein transparenter layer über allem
lag, was eigentlich auch logisch ist, mir aber am anfang gar nicht aufgefallen
ist, da es im ie und n4 mit der auswahl funktionierte nur die ausgabe halt
nicht!
auf jeden fall, es vergeht kein tag an dem man nicht neue tücken unserer
liebgewonnen browser familie kennenlernt!
grüße
p@
Grüssi
ich möchte aus einem dropdown feld die gewählte value auslesen,
dazu habe ich per link auf eine funktion verwiesen, die folgenden
wert = document.rechner.groesse.options.selectedIndex.value;
Versuchs mal mit der etwas abstrus aussehenden Konstruktion:
document.rechner.groesse.options[document.rechner.groesse.options.selectedIndex].value
Die selectedindex-Property liefert dir den Index des ausgewählten Objekts, logischerweise kannst du dann nicht noch ein value-Property dranhängen. Daher ist dieser kunstvolle Workaround notwendig ;-)
Da die options JS-intern als Arrays gespeichert werden, musst du sie über einen Index ansprechen, wenn du einen value auslesen willst. Und den entsprechenden Index bekommt man eben mit document.rechner.groesse.options.selectedIndex
kann mir noch mal jemand genau schildern was es denn mit diesem
"has no properties" auf sich hat? was soll das, "hat keinen besitz?"
Also, kurz gesagt, heisst es dass irgendwas nicht stimmt ;-) Die beglückende Arbeit, den Fehler zu suchen wird dem Programmierer überlassen. Das ist die Standardantwort des Clients auf einen JS-Fehler! Meistens ist der Grund dafür, dass eine Property keinen definierten Wert hat, oder diese Property für das angegebene Objekt nicht existiert. Womit wir schon beim Thema wären:
Der Unterschied zwischen Properties und Objekten:
Property heisst nicht zwangsweise immer "Besitz". In deinem Fall kommt man wohl mit "Eigenschaft" etwas mehr voran ;-) Javascript ist objektorientiert aufgebaut. Und wie der Name schon sagt, werden Objekte zur verfügung gestellt Ein form ist Beispielsweise so ein Objekt. Es kann Unterobjekte haben. form.elements zum Bleistift! Und jedes Objekt hat Eigenschaften, die dieses Objekt näher spezifizieren. Manche Eigenschaften sind read/write (z.b. form.elements[0].value) andere wiederum nur zum Auslesen gedacht (form.elements[0].type)
Du kannst dir Properties als Funktionen vorstellen, die deine Objekte nach ihren Beschaffenheiten abfragen, bzw. auch als Funktionen, mit denen du (einzelne *Eigenschaften*) diese Objekte ändern kannst!
hth + lg
bernhard
PS: Als Lektüre zum besseren Verständnis empfehle ich den JS-Teil von Selfhtml:
http://www.teamone.de/selfhtml/te.htm
und die darin befindliche Objektreferenz zur leichteren Veranschaulichung:
http://www.teamone.de/selfhtml/tec.htm
wert = document.rechner.groesse.options.selectedIndex.value;
Versuchs mal mit der etwas abstrus aussehenden Konstruktion:
document.rechner.groesse.options[document.rechner.groesse.options.selectedIndex].value
hallo bernhard,
habe es schon gestern mit deiner "abstrusen" kombination probiert, hat aber
ebenfalls nicht funktioniert! komisch eigentlich.
auf jeden fall danke ich dir für deine erklärung und den tip selfhtml zu
lesen, aber glaube mir das ist immer das erste das ich voll ausreize bis
ich mich entscheide hier etwas zu posten!
fällt dir vielleicht noch eine andere möglichkeit ein?
gruß
p@
Grüssi!
Versuchs mal mit der etwas abstrus aussehenden Konstruktion:
document.rechner.groesse.options[document.rechner.groesse.options.selectedIndex].value
habe es schon gestern mit deiner "abstrusen" kombination probiert, hat aber
ebenfalls nicht funktioniert! komisch eigentlich.
ja, sehr komisch, vielleicht könntest du dein Formular (+ dessen JS-Abfrage) ja mal posten, zum ausprobieren!
auf jeden fall danke ich dir für deine erklärung und den tip selfhtml zu
lesen, aber glaube mir das ist immer das erste das ich voll ausreize bis
ich mich entscheide hier etwas zu posten!
naja, was soll ich sagen, Hellseher bin ich keiner, also nahm ich mal den worst case an, und da probiert man's bene erst von gaaaaanz von vorn *g* ;-) Ausserdem gibts viele, die nicht soviel überlegen/nachschlagen, wie du, bevor sie hier ihre Fragen stellen :-(
fällt dir vielleicht noch eine andere möglichkeit ein?
Eigentlich nicht so wirklich.
lg bernhard
Habe das gleiche Problem. Es liegt an der Auswahlliste (select). Ich schaff´s auch nicht, den Wert daraus zu bekommen, egal mit welcher Konstruktion.
Habe was im Archiv gefunden, das bei mir funktioniert (siehe Beispiel unten)
(JAVASCRIPT) Mit Netscape funktionierts nicht
von: Stefan E., stefan.eickhoff@web.de
geschrieben am: 19.10.2000, 01:00 Uhr
Hallo Luis,
Du hast innerhalb Deines Formular eine Select-Auswahl (Faktor).
Um den Value-Wert daraus zu ermitteln musst Du beim Netscape
ungefähr so vorgehen:
var si = document.formularname.namederselectliste.selectedIndex;
var wert=document.formularname.namederselectliste.options[si].value;
Der IE kann auch mit
wert=document.formularname.namederselectliste.value;
umgehen aber beim NS geht es so nicht.
-------------------------------------------------------------------
Beispiel, das mit Netscape 4.7 und IE 5 funktioniert:
<HTML>
<head>
</head>
<body>
<script language="JavaScript">
<!--
function testxx(si)
{
alert(document.test.hugo.options[si].value);
}
//-->
</script>
<form name="test">
<select name="hugo" onchange="testxx(document.test.hugo.selectedIndex)">
<option value='AA'>aa</option>
<option value='BB'>bb</option>
<option value='CC'>cc</option>
</select>
</FORM>
</BODY>
</HTML>