Avatar billede -chriz- Nybegynder
27. februar 2004 - 11:24 Der er 6 kommentarer og
1 løsning

"Dynamisk" drop-down

Hej,

Kan man lave en "dynamisk" drop down menu med JavaScript, á la den der findes på denne side (feltet "bil-model og type"):
https://www.fair.dk/smcms/BEREGN_OG_KOEB/Business_Application/Index.htm?ID=3151&to=/QuickCalcCarPage.page - og hvis man kan, er der nogen der kan kaste lidt kode eller et link denne vej? ;)

/Christian
Avatar billede -chriz- Nybegynder
27. februar 2004 - 11:41 #1
må nok hellere lige forklare hvad det er jeg vil have... sorry!

Jeg skal have et form input-felt, hvor man kan indtaste et navn - feltet skal så løbende, når man indtaster bogstaver, komme med forslag til navnet - lidt á la Internet Explorers auto-udfyld funktion..
Avatar billede nute Nybegynder
27. februar 2004 - 12:37 #2
selvfølgelig kan det laves ... ellers ville ikke fair.dk kunne have gjort det ;o]

et tips er at kigge i koden. det der laver tricket er denne HTML:

<input name='carType$imgRoot' type='hidden' value='/fair/client/fair/pics/logged_off/'></input>
<input name='carType$url1' type='hidden' value='https://www.fair.dk/fair/servlet/search?command=1&searchValue='></input>
<input name='carType$url2' type='hidden' value='&entity=dk.fair.tiadomainmodel.CarType&attribute=fullName&startingWith=false&maxResults=500&smartSearch=true'></input>
<input name='carType$descr' size='40' tabindex='1' type='text' autocomplete='off' onkeyup='search("carType");' value='' class='Inputtekst'  ></input>
<img height='14' border='0' name='carType$statusImg' style='visibility: hidden; ' width='20'></img>
<input name='carType' type='hidden' value=''></input>
<Div style='position: absolute; visibility: hidden; z-index: 10; ' id='carType$selectDiv'>
<select onclick='userSelect("carType");' name='carType$select' size='5' tabindex='1' onkeypress='userSelectOnEnter("carType");' class='Inputtekst' onblur='userSelect("carType");'></select></Div>

alle javascript funktioner ligger i denne javascript fil:

https://www.fair.dk/fair/scripts/search.js

det er bare til at kigge på det.

Pricippet i det er:

- lav en tekstbox
- lav et layer (<div>) hvor du legger en select ind i
- skjul dit layer.
- når du taster noget ind i tekstboxen, populerer du din select og derefter viser du dit layer

/nute
Avatar billede -chriz- Nybegynder
27. februar 2004 - 21:38 #3
Jeg synes bare koden er ret så besværlig at finde rundt i... er der ikke nogen der har en lidt "nemmere" kode, der kan gøre det samme?
Avatar billede nute Nybegynder
27. februar 2004 - 22:12 #4
hehe ... den *er* besværlig at finde rundt i, for et utrænet øje ;o]

efter at have kigget lidt nærmere på koden, så kan jeg se at "hele tricket" ligger i disse linjer:

<xml id="data" src=""></xml>
<script event="ondatasetcomplete" for="data">handleResult();</script>

måden det fungerer på, er:

- du taster ind noget i textboxen
- systemet sætter en URL ind i 'src' attributten i <xml> tagget (prøv fx. at laste denne url i din browser:
https://www.fair.dk/fair/servlet/search?command=1&searchValue=ford&entity=dk.fair.tiadomainmodel.CarType&attribute=fullName&startingWith=false&maxResults=500&smartSearch=true
( dette er den URL der bliver sat i 'src' hvis du søger efter 'ford' og et søg bliver startet). Du vil få noget xml tilbage.
- denne linje:
<script event="ondatasetcomplete" for="data">handleResult();</script>
gør at når xml'en er færdig lastet, så bliver data behandlet og proppet ind i en selectbox

der er en god mix af nogle ret smarte og komplicerede "teknikker" hvis du ikke er vant til at arbejde med ting som dette. den bedste måden at finde ud af det på, er faktisk at prøve at kopiere hele koden og lege med den. det bliver ret svært at prøve at forklare hvordan det laves (specielt når jeg nu har indtryk at du måske ikke har så stort kendskab til denne type funktionalitet - NO offence - jeg mener det på den bedste måde!!)

/nute
Avatar billede -chriz- Nybegynder
27. februar 2004 - 22:34 #5
hehe... det er helt i orden, jeg prøver at se på det.. send et svar afsted, og du får points'ene
Avatar billede nute Nybegynder
27. februar 2004 - 22:40 #6
oki ... takker :-)
Avatar billede nute Nybegynder
27. februar 2004 - 22:40 #7
ups ...
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