/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Ændre indholdet af en select
Fra : Anders Lund


Dato : 15-01-03 23:10

jeg har brug for at indholdet i et select input felt kan ændres, i forhold
til hvad der er valgt i et andet felt. Jeg har tænkt på at lave en række
layers med de forskellige selects og så skifte dem ud, efter hvad der står i
det andet felt. Er der en bedre løsning? - hvis ikke så kunne jeg godt bruge
lidt hjælp, da jeg har glemt hvordan de bruges (NS/mozilla kompatabilitet er
ikke et krav, men er højt ønskeligt)

Håber der er nogen der kan hjælpe den på den ene eller anden måde.

--
Mvh
Anders Lund
AndersGED@zaim.dk
fjern geden fra min email adresse



 
 
Jakob Andersen (16-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 16-01-03 01:18

"Anders Lund" <andersGED@zaim.dk> wrote
> jeg har brug for at indholdet i et select input felt kan ændres, i forhold
> til hvad der er valgt i et andet felt. Jeg har tænkt på at lave en række
> layers med de forskellige selects og så skifte dem ud, efter hvad der står
i
> det andet felt. Er der en bedre løsning?

Hvis jeg var dig ville jeg ikke bruge layers men istedet tilgå selectboksene
og manipulere med deres elements array, jeg har lige lavet et hurtigt
eksempel til dig her:

<http://www.cartoonhero.dk/dk.edb.internet.webdesign.clientside/afselect.htm
l>

Ovenstående burde virke i såvel IE5+, Mozilla/Netscape6+ og Opera. Hvis du
gerne vil have det til at virke i NN4 får du nok problemer med
eventhandleren på selectboksen, men det kan løses ved at lave en lykke
engang imellem tjekker om der er ændret valg i den første boks.

--
Jakob Andersen



Jakob Andersen (16-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 16-01-03 01:20

"Jakob Andersen" <jakob@effectus.dk> wrote
> Ovenstående burde virke i såvel IE5+, Mozilla/Netscape6+ og Opera. Hvis du
> gerne vil have det til at virke i NN4 får du nok problemer med
> eventhandleren på selectboksen, men det kan løses ved at lave en lykke
> engang imellem tjekker om der er ændret valg i den første boks.

Hmm.. det er så sandelig ikke lige min dag. fjern "såvel" og læs lykke som
løkke

--
Jakob Andersen



Torben Brandt (16-01-2003)
Kommentar
Fra : Torben Brandt


Dato : 16-01-03 01:48

Jakob Andersen wrote in dk.edb.internet.webdesign.clientside:
> "Anders Lund" <andersGED@zaim.dk> wrote
> > jeg har brug for at indholdet i et select input felt kan ændres, i forhold
> > til hvad der er valgt i et andet felt. Jeg har tænkt på at lave en række
> > layers med de forskellige selects og så skifte dem ud, efter hvad der står
> i
> > det andet felt. Er der en bedre løsning?
>
> Hvis jeg var dig ville jeg ikke bruge layers men istedet tilgå selectboksene
> og manipulere med deres elements array, jeg har lige lavet et hurtigt
> eksempel til dig her:
>
> <http://www.cartoonhero.dk/dk.edb.internet.webdesign.clientside/afselect.htm
> l>
>
Fra ovenstående side:
function fyldFrugtGroent( arr, objSelect ){
objSelect.length = arr.length;
for(i=0;i<arr.length;i++){
objSelect.options[i].text = arr[i];
}
}

Det er ikke fordi det ikke virker, men er det ikke lidt "snyd" at sætte længden
på listen i stedet for at slette de overskydende, og derefter genbruger du de
gamle options i stedet for at lave nogle nye...

Jeg ville have brugt constructoren for Option-objektet:
Option([text[, value[, defaultSelected[, selected]]]])
i stedet til at lave noget lignende dette (utestet):
function fyldFrugtGroent( arr, objSelect ){
for(i = objSelect.length - 1; i >= 0; i--){
if (i > arr.length - 1)
// Denne plads skal ikke længere bruges -> vi slettet indholdet
objSelect.options[i] = null;
else
// Denne plads skal bruges -> vi indsætter det nye indhold
objSelect.options[i] = new Option(arr[i], arr[i]);
}
}

Lige i dette tilfælde ser det ikke ud til at der er forskel, men er der nogle
ulemper ved at "snyde" som jeg lidt synes Jakob gør? :)


> Ovenstående burde virke i såvel IE5+, Mozilla/Netscape6+ og Opera. Hvis du
> gerne vil have det til at virke i NN4 får du nok problemer med
> eventhandleren på selectboksen, men det kan løses ved at lave en lykke
> engang imellem tjekker om der er ændret valg i den første boks
I øvrigt ser det ud til at onChange virker i Netscape 4.x

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jakob Andersen (16-01-2003)
Kommentar
Fra : Jakob Andersen


Dato : 16-01-03 10:20

"Torben Brandt" <torben@actuar.dk> wrote
> Det er ikke fordi det ikke virker, men er det ikke lidt "snyd" at sætte
længden
> på listen i stedet for at slette de overskydende, og derefter genbruger du
de
> gamle options i stedet for at lave nogle nye...

Du har ret, det gik lige lidt hurtigt med at lave eksemplet, så jeg
udnyttede at samtlige browsere på markedet lader mig sætte længden selvom
den i DOM 1 specifikationen står til at være read-only.

Dog er den i den nye recommendation DOM2, blevet lavet både read/write så
det skulle gerne holde i fremtidige versioner af diverse browsere og er nok
også noget hurtigere end at "cleare" elementerne først med null.

> I øvrigt ser det ud til at onChange virker i Netscape 4.x

Okay, det overrasker mig.

--
Jakob Andersen



Anders Lund (17-01-2003)
Kommentar
Fra : Anders Lund


Dato : 17-01-03 14:04

"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:b04tlu$22pc$1@news.cybercity.dk...
> "Anders Lund" <andersGED@zaim.dk> wrote
<http://www.cartoonhero.dk/dk.edb.internet.webdesign.clientside/afselect.htm
l>
> Ovenstående burde virke i såvel IE5+, Mozilla/Netscape6+ og Opera. Hvis du
> gerne vil have det til at virke i NN4 får du nok problemer med
> eventhandleren på selectboksen, men det kan løses ved at lave en lykke
> engang imellem tjekker om der er ændret valg i den første boks.


Mange gange tak, det virker bare som det skal, og koden er let forståelig.
Hvordan har du det med at "din" kode kommer på en stor auto siden, inden for
overskuelig frem tid.



--
Mvh
Anders Lund
AndersGED@zaim.dk
fjern geden fra min email adresse



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste