URL: https://www.overclockers.at/coding-stuff/dropdown-menues_in_html_96447/page_1 - zur Vollversion wechseln!
hallo
ich habe ein dropdown-menü und ich möchte dass die seite die einer bestimmten option im dropdown zugeordnet ist aufgerufen wird wenn man sie nur im dropdown auswählt, also nicht auswählen => submit sondern nur auswählen. dazu hab ich folgenden code im i-net gefunden (den onChange, der rest is nur zum zweck der übersichtlichkeit da)
Zitat<select name="select2" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option selected value="">Verlag
<option>--------------------</option>
</select>



window ist das DOM window-Objekt; ein Javascript Objekt mit dem du auf die Eigenschaften des Fesnters zugreifen kannst.
window.location ist eine Eigenschaft; naemlich die der aktuellen Adresse, URL, whatsoever
document ist das Javascript DOM Objekt mit dem du auf den Inhalt einer Seite zugreifen kannst; eine repraesentation der HTML Seite (er gesammten!) durch einen sog. DOM-Tree
document.guideform nutzt eine veraltete Variante, auf Formulare innerhalb von Seiten direkt durch ihren Namen (name-Attribut) zuzugreifen
document.guideform.guidelinks ist der Name des <select>-Elements in diesem Formular.
document.guideform.guidelinks.options sind die ganzen <option>-Elemente die du anfuehrst; als array.
document.guideform.guidelinks.selectedIndex ist die Nummer des gerade Ausgewaehlten Elementes des <select>-Elements (beginnend bei 0). Diese bietet quasi den Index als Zugriff auf die ganzen <option>s. Eine <option> hat immer einen Wert (.value) assoziert. <option value="http://wohinichgehe/duauch">Gehe dorthin</option><select> triffst. Dann sucht er sich raus, welches <option>-Element wurde ausgesucht, nimmt desen value (welche Sinnigerweise eine URL sein sollte) und stopft den als neue Adresse in die Browser location.
Eleganter ist es, auf das <select>-Element selbst zu referenzieren. das onchange-Event wird ja als Methode von dem jeweiligen Objekt auferufen. Was in onchange="" steht, muss man daher als Methodenaufruf (select-Element).onchange() sehen. D.h. darin kann ich mit this.<eigenschaft|methode> auf das Objekt selbst verweisen:
Code:onchange="window.location = this.options[this.selectedIndex].value"
danke für die ausführliche erklärung 
ich bin schon ein bissi selbst draufgekommen, habs grad ausgebessert.
jetz hab ich aber noch ein problem, und das is noch viel schlimmer. ich übergebe die werte per <form> und ich hab 3 dropdowns nebeneinander, also in einer zeile und ich kann pro zeile aber nur ein <form> haben, wie kann ich das lösen? 
a) table
b) div float:left
c) form display:inline bzw display:none oder margin/padding auf 0px
d) alle dropdowns in ein <form>
die form fragt ja immer nur den zustand von einem dropdown ab, also wenn ich alle drin hab in einer form, dann hab ich beispielsweise das ersten dropdown auf "praxis" und egal was ich bei den anderen auswähle, er fragt dann die form ab und die form sagt "praxis"Zitat von atroxa) table
b) div float:left
c) form display:inline bzw display:none oder margin/padding auf 0px
d) alle dropdowns in ein <form>

es gibt überhaupt nichts was dagegen spricht, mehrere dropdowns in einem form zu haben - jedes erhält seinen eigenen namen/id, jedes hat seinen eigenen onchange-handler.
oder verstehe ich dich da jetzt falsch?
hm... ich weiß jetz gar nicht, ich mach das zum ersten mal
ich kann nur das sagen was ich ausprobiert hab, aber jetz bin ich eh müde http://www.click-smilies.de/sammlun...-smiley-009.gif
ich mach morgen in der schule weiter, dann post ich wieder 
ok, das problem is weitgehend gelöst, hab für jedes ein eigenes form, die forms kann man ja hintun wo man will 
danke mal an alle helfenden 
aber es gibt noch ein kleines problem und zwar:
ich hab jetz meine 3 dropdowns, das erste heißt "praxis", das zweite "verlag" und das dritte "religion". in den dropdowns soll von anfang an was drin stehn, also hab ich die ersten werte (praxis, verlag, religion) mit <option selected... stehn. wenn man aber jetz das dropdown anwählt und beispielsweise praxis anwählen will dann gibt das dropdown den wert nicht weiter weil dieser wert ja sowieso schon ausgewählt ist.
ich hab auch schon einen zweiten wert mit praxis gemacht, der eine is selected und hat keinen value, und der andere is der richtige, aber erstens schauts schiach aus im dropdown und zweitens gibts an ausnahmefehler wenn man den ohne value anklickt 
was kann ich da noch machen?
1. du könntest deine besch* code im ersten post auf eine länge kürzen die auf einen bildschirm mit weniger als 2048 pixel breite passt
2. du könntest statt dem ie einen browser verwenden... - wie ich wusste dass du den ie verwendest? verrat' ich nicht 
2a: du könntest den startwert per javascript setzen
Zitat von flockyZitat von LunaticLordFinal Destination (2) hat ein offenes Ende, wenn auch nicht gerade ein sehr glückliches
ad 1. danke für den spam, besser?Zitat von watchout1. du könntest deine besch* code im ersten post auf eine länge kürzen die auf einen bildschirm mit weniger als 2048 pixel breite passt
2. du könntest statt dem ie einen browser verwenden... - wie ich wusste dass du den ie verwendest? verrat' ich nicht
2a: du könntest den startwert per javascript setzen
Es obliegt auch der Verantwortung der Entwickler das sie nicht blind machen was der Kunde will. In solchen Faellen muss man den Kunden erziehen. Gut, wenn man erst anfaengt wird man das kaum schaffen. Dazu gehoert nun mal Erfahrung. Weiter viel Glueck!
danke, hast du vielleicht eine lösung mit wenig aufwand weil der typ wartet schon seit gestern darauf dass das problem gelöst wird 
spam? eher nicht, ich hab darauf gewartet dass du selber draufkommst - dem war nicht so.Zitat von flockyad 1. danke für den spam, besser?
wie man sieht waren meine schlüsse absolut korrekt...Zitat von flockyad 2. nochmal danke für die voreiligen schlüsse. ich habe in diesem fall den IE fürs preview verwendet weil es in opera (mein standard-browser) darstellungsprobleme gibt denen ich mich jetz zuwende.
hmm, ich kann dieser problemlösung nicht wirklich folgen...Zitat von flockyad 2a: ich hab beim onchange-handler die funktion document.forms[0],reset(); dazugeschrieben und somit gelöst.
owa 
ich glaub zwar nicht dass du dir das gedacht hast aber das musst du selber wissen
egal
rektal hat mir auch ohne den kompletten code helfen können 
trotzdem danke für deine weltverbesserung.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025