select - Position der Scroll-Liste
karsten
- html
Hallo,
gibt es eine Möglichkeit einer <select>-Liste - zusätzlich zur Wahl eines
vorselektierten Elementes - auch zu sagen, wohin die Liste gescrollt werden
soll?
IE und Mozilla machen es defaultmäßig jeweils anders und ich kann beide
Versionen nicht gebrauchen...
Ich habe eine Seite mit select-Listen, die immer wieder über einen jboss
neu aufgebaut wird, wenn der Nutzer einen Eintrag wählt. Dann steht der
selektierte Eintrag (beim IE) nach dem Neuaufbau aber ganz oben,
der Nutzer würde aber sicher lieber haben, dass sich die Liste nicht
verändert, das gewählte Element dort steht, wo auch sein Mauszeiger nach dem Klick ist. Deshalb würde ich der Liste gerne mitgeben, welches Element
das zuoberst dargestellte sein soll damit sie dorthin scrollen kann.
Hat da irgendjemand eine Idee?
Gruß und Dank im Voraus.
Karsten
Wenn Du für die verschiedenen Browser verschiedene Funktionen nehmen willst, probiere folgendes Konstrukt:
try {
IE-Version
} catch(e) {
FF-Version
}
Gruß, LX
Hallo,
Ich habe eine Seite mit select-Listen, die immer wieder über einen jboss
neu aufgebaut wird, wenn der Nutzer einen Eintrag wählt. Dann steht der
selektierte Eintrag (beim IE) nach dem Neuaufbau aber ganz oben,
der Nutzer würde aber sicher lieber haben, dass sich die Liste nicht
verändert, das gewählte Element dort steht, wo auch sein Mauszeiger nach dem Klick ist. Deshalb würde ich der Liste gerne mitgeben, welches Element
das zuoberst dargestellte sein soll damit sie dorthin scrollen kann.
Also ich weiß glaub ich noch nicht was du realisieren möchtest. Habe schon ne Menge DropDown Menüs gebaut, aber eine solche Fragestellung kam mir noch nicht.
Also, du generierst DropDown aus Einträgen in einer DB, richtig? Dann haste z.B. sowas:
Wähle aus
Tomate
Gurke
Apfel
Dann wählt man Gurke. DropDown schließt sich und Gurke wird angezeigt. Wenn man das DropDown wieder öffnet, soll Gurke aber noch immer an Position 2 sein, ja?
Was meinst du mit Neuaufbau? Wird nach dem onchange die DB neu ausgelesen? Dann sortier das Recordset nach einem bestimmten Kriterium.
Oder heißt Neuaufbau du öffnest das DropDown erneut? Dann stehen die doch noch immer in der selbsen Reihenfolge da.
Wie gesagt - vielleicht hab ich noch nicht ganz verstanden wo das Problem liegt.
Hallo Gino,
ich habe eine jsp-Datei, aus der eine html-Datei erzeugt wird.
Nach Auswahl von Gurke wird die gesamte Seite neu aufgebaut und
neben der Liste mit "Tomate, Gurke, Apfel" steht dann (aus einer DB)
eine weitere Auswahlliste "grüne Gurken, große Gurken, eingelegte Gurken"
Nach diesem Neuaufbau der Seite steht dann in der ersten Liste Gurke ganz
oben. Das Problem ist: Der Benutzer klickt auf Gurke (z.B. 17. Eintrag aus
100, relativ weit unten auf dem Bildschirm dargestellt). Nach dem Neuaufbau
durch den Server steht dann Gurke ganz oben und der Nutzer ist verwirrt da die
ganze Liste in seinen Augen "springt".
Was ich nun brauche ist ein Attribut, ähnlich wie <selected>, dass der
Liste sagt, welches Element als erstes sichtbares Element dargestellt
werden soll.
Ich hoffe, es ist verständlich genug geschildert... ;O)
Gruß
Karsten
Hallo Gino,
Ich hoffe, es ist verständlich genug geschildert... ;O)
Ja verstehe. Aber es klingt mehr nach einem multiple select statt einem normalen. Kannst du bitte den HTML Code mal bereitstellen. Ich muss mal sicherstellen was da gebaut wird um eine qualifizierte Antwort abzugeben.
Unqualifiziert würde ich jetzt sagen, dass wenn das erste Select auch aus einer DB kommt dann wird es doch immer gleich aufgebaut, wenn eine Order vorgegeben ist. Es sei denn du sagst irgendetwas soll anders sein nach der Auswahl.
Wie gesagt ich muss jetzt mal Code sehen, brennt mir ja mal unter den Nägeln was da nicht klappen soll :)
Natürlich wird die Liste gleich aufgebaut, aber durch die Wahl von Gurke
wird die Liste anders gescrollt und zwar so, dass Gurke ganz oben steht.
Tomate steht natürlich darüber, die Liste (kein dropdown) ist aber
so gescrollt, dass Gurke oben steht. Das will ich vermeiden.
Ja, aber genau das ist ja das schöne. Wenn man was wählt scollt das multiple select direkt zu der stelle und man muss den Eintrag nicht suchen. Außerdem sieht man was man gewählt hat und was dann als nächstes zur Auswahl steht.
Gute Vorlage sind die ATI Grafikkarten Treiber.
Bist du dir sicher, dass du das nicht willst? Alles andere würde ich ja als nicht wirklich usable sehen.
Ansonsten würde ich sagen, wenn du immer willst das alles wie im Default, also zu Beginn angezeigt wird, dann lass das selected weg. Übergib den Wert den du benötigst, um die zweite Liste zu generieren und die erste wieder unbehandelt.
Verständlich?
Die Wahl muss natürlich stehen, der Benutzer muss ja sehen, dass
er Gurke gewählt hat. Ich weiß auch, dass es genauso gedacht ist,
dass der gewählte Eintrag oben steht, aber in Verbindung mit dem
Neuaufbau der Seite mittels jsp springt die Liste halt, da der Benutzer
einen Eintrag in der Mitte der Liste wählt und danach die gesamte Liste
quasi "unterm Arsch" weggescrollt wird.
Mit javascript kann ich leider auch nicht arbeiten, da sonst alle Infos
(mehrere MB) von vorneherein übertragen werden müsten.
Naja, werd mich mal weiter umschauen, ansonsten muss das halt so bleiben.
Trotzdem Danke für Deine Mühe.
Gruß
Karsten
Oder du erstellst als erstes einen Listeneintrag wie
Bitte wählen
onload soll er dann immer dahin springen. So ne Art Anker für arme^^
Achso nochwas,
es handelt sich nicht um eine dropdown-Liste sondern um eine
scrollbare immer dargestellte Liste...