Avatar billede jespere Nybegynder
27. oktober 2003 - 20:42 Der er 6 kommentarer og
1 løsning

Scroll til første valgte i multiple select

Jeg har en selectbox med f.eks. 10 options i:

<select name="liste" multiple size=4>
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
  <option value=4>4</option>
  <option value=5>5</option>
  <option value=6 SELECTED>6</option>
  <option value=7>7</option>
  <option value=8>8</option>
  <option value=9 SELECTED>9</option>
  <option value=10>10</option>
</select>

Selecten viser 4 options og resten skal der scrolles for at se.
Lad os sige at option 6 og 9 er selected når listen vises (den bliver genereret fra en db og selected bliver sat ud fra nogle tidligere brugervalg).

Hvordan (og kan man overhoved) får jeg automatisk scrollet ned, så den første valgte (selected) option kommer øverst i selecten (dvs. at man skal scrolle op for at se de foregående).

Som det er nu, så skal man scrolle hele listen igennem for at se, om der er nogle options der er selected.
Avatar billede olebole Juniormester
28. oktober 2003 - 00:19 #1
<ole>

Det kan du ikke, man du kan f.eks. få den sidste nederst:

<select name="liste" multiple size=4>
  <option value=1>1</option>
  <option value=2>2</option>
  <option value=3>3</option>
  <option value=4>4</option>
  <option value=5>5</option>
  <option value=6 SELECTED>6</option>
  <option value=7>7</option>
  <option value=8>8</option>
  <option value=9 SELECTED>9</option>
  <option value=10>10</option>
</select>

<script type="text/JavaScript">
window.onload = function() {
    liste.options[8].selected=true;
}
</script>

/mvh
</bole>
Avatar billede olebole Juniormester
28. oktober 2003 - 00:21 #2
Egentlig:

<script type="text/JavaScript">
window.onload = function() {
    document.getElementById("liste").options[8].selected=true;
}
</script>
Avatar billede olebole Juniormester
28. oktober 2003 - 00:21 #3
... og så skal du lige sætte id="liste" på select'en  ;o)
Avatar billede jespere Nybegynder
28. oktober 2003 - 00:40 #4
Jamen, det var jo lige det jeg manglede. Jeg bukker og takker !

Det betyder ikke så meget om det er det første eller sidste der bliver vist.
Det vigtigste er, at det bliver tydeligt for brugeren, at der allerede er valgt nogle options i listen.

Læg et svar, så skal du fluks få dine point.
Avatar billede olebole Juniormester
28. oktober 2003 - 01:55 #5
Det var heldigt - for der er ikke så meget andet at gøre  ;o)

For fuldstændighedens skyld, kan du også kalde med:
  document.DIT_FORMNAVN.liste.options[8].selected = true;
hvor du så ikke behøver id="liste", men kan nøjes med name="liste".
En tredie måde er:
  document.DIT_FORMNAVN.liste.selectedIndex = 8;

eller:
  document.getElementById("liste").selectedIndex = 8;
hvor du igen skal have id="liste".

Det sjove er, man ikke kan lægge scriptet lige under select'en og kalde med f.eks:
  <script type="text/JavaScript">
      document.getElementById("liste").options[8].selected = true;
  </script>
Man _skal_ vente - hvor længe ved jeg ikke ... men det virker i hvert fald på onload-event'en  :)

I håbet om vi ikke knalder panderne sammen, vil jeg da også bukke og takke  :)
/mvh
Avatar billede olebole Juniormester
28. oktober 2003 - 02:00 #6
Ved nærmere eftertanke, tror jeg faktisk, den mest direkte tilgang er:
  document.getElementById("liste").selectedIndex = 8;
... men det er nærmest kun af akademisk interesse i denne sammenhæng  :)

GOD NAT OLE ...!!!  :D
Avatar billede jespere Nybegynder
28. oktober 2003 - 02:03 #7
Godnat og tak !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester