/ 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
Problemer med taste valg script
Fra : Rune Jensen


Dato : 10-09-09 18:26

http://webdesigngruppen.dk/diskussion.asp?pagenumber=1

Den tilhørende JS hedder select_page.js

Den gør, man kan skifte side (bladre) med både mus og taster i
drop-down'en. Men resultatet er ikke ens, om det er med mus eller
taster. Det virker fint med mus. Med taster, bliver værdien af
pagenumber tilsyneladende 1 højere - hvorfor???


MVH
Rune Jensen

 
 
Rune Jensen (10-09-2009)
Kommentar
Fra : Rune Jensen


Dato : 10-09-09 19:06

Rune Jensen skrev:
> http://webdesigngruppen.dk/diskussion.asp?pagenumber=1
>
> Den tilhørende JS hedder select_page.js
>
> Den gør, man kan skifte side (bladre) med både mus og taster i
> drop-down'en. Men resultatet er ikke ens, om det er med mus eller
> taster. Det virker fint med mus. Med taster, bliver værdien af
> pagenumber tilsyneladende 1 højere - hvorfor???

Det viste sig at skulle løses serverside - values i dropdownen var ikke
korrekte.


MVH
Rune Jensen

Birger Sørensen (10-09-2009)
Kommentar
Fra : Birger Sørensen


Dato : 10-09-09 19:11

Efter mange tanker skrev Rune Jensen:
> http://webdesigngruppen.dk/diskussion.asp?pagenumber=1
>
> Den tilhørende JS hedder select_page.js
>
> Den gør, man kan skifte side (bladre) med både mus og taster i drop-down'en.
> Men resultatet er ikke ens, om det er med mus eller taster. Det virker fint
> med mus. Med taster, bliver værdien af pagenumber tilsyneladende 1 højere -
> hvorfor???
>
>
> MVH
> Rune Jensen

Du bruger seletedindex, som er 0-baseret, fra selecten, som sidenummer.
Umiddelbart skal du bruge value - altså
targetelement.options[ targetelement.selectedIndex].value
- eller også skal du lægge en til selectedIndex, for få samme værdi.
Den sidste holder selvfølgelig kun så længe options kommer i den
rigtige rækkefølge. ^^

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (10-09-2009)
Kommentar
Fra : Rune Jensen


Dato : 10-09-09 21:52

Birger Sørensen skrev:

> Du bruger seletedindex, som er 0-baseret, fra selecten, som sidenummer.
> Umiddelbart skal du bruge value - altså
> targetelement.options[ targetelement.selectedIndex].value
> - eller også skal du lægge en til selectedIndex, for få samme værdi.
> Den sidste holder selvfølgelig kun så længe options kommer i den rigtige
> rækkefølge. ^^

det var først efter et stykke tid, det gik op for mig, at der er forskel
på value og index.. jeg rettede bare i ASPen, ikke i JSen.

Skal jeg være helt ærlig, så forstår jeg ikke JS-scriptet 100%, så din
forklaring er rigtig fin, så er der lidt mere, jeg forstår ved JS ;)



MVH
Rune Jensen

Birger Sørensen (11-09-2009)
Kommentar
Fra : Birger Sørensen


Dato : 11-09-09 00:34

Rune Jensen har bragt dette til verden:
> Birger Sørensen skrev:
>
>> Du bruger seletedindex, som er 0-baseret, fra selecten, som sidenummer.
>> Umiddelbart skal du bruge value - altså
>> targetelement.options[ targetelement.selectedIndex].value
>> - eller også skal du lægge en til selectedIndex, for få samme værdi.
>> Den sidste holder selvfølgelig kun så længe options kommer i den rigtige
>> rækkefølge. ^^
>
> det var først efter et stykke tid, det gik op for mig, at der er forskel på
> value og index.. jeg rettede bare i ASPen, ikke i JSen.
>
> Skal jeg være helt ærlig, så forstår jeg ikke JS-scriptet 100%, så din
> forklaring er rigtig fin, så er der lidt mere, jeg forstår ved JS ;)

Fair nok ;>)
Med en kommentar i ASP'en er det måske også forståeligt, næste gang du
skal bruge noget der ligner. Tror jeg ville rette det i js'en.

Ellers:
selectedIndex, er index for den valgte option (når der kun kan vælges
een - man kan lave select, der kan vælge flere, men det vil nok være
upraktisk til din anvendelse her...).
og index er simpelthen nummeret i rækken af options, startende med
nummer 0. Ud over den orden man skriver options i kildekoden, har man
ikke mulighed for selv at manipulere med index. (Måske gennem DOM, til
f.eks. at ændre rækkefølgen, men det vil nok være ret specielle
tilfælde..)
value er den du giver i html. Og det er måske lidt misvisende med ordet
value (hvis man oversætter value med værdi, kan det godt mistolkes som
værende et tal), for det behøver ikke være et tal, men kan også være
tekster. value for den valgte option, er den værdi der submittes, når
en select bruges i en form.
teksten kan man få fra den valgte option - i nogle browsere vist nok
som .text, men i hvert fald med innerHTML eller textContent (som vist
hedder innerText i IE) - og er vel egentlig mest beregnet til at give
brugeren information nok til at kunne træffe et valg.

Jeg syntes, det er helt fint at spørge, også selvom det man sidder og
roder med, faktisk virker, men man ikke helt forstår hvorfor ^^ Man
risikerer ikke meget andet end at blive klogere..

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (11-09-2009)
Kommentar
Fra : Stig Johansen


Dato : 11-09-09 05:54

Birger Sørensen wrote:

> value for den valgte option, er den værdi der submittes, når
> en select bruges i en form.

Bare en fodnote, som måske ikke er relevant i denne sammenhæng.
Baggrunden for jeg har brugt selectedIndex var noget bøvl jeg havde med IE6
i forbindelse med noget script til Peters morgenmusik.

Jeg kan ikke huske om det var selectedValue jeg prøvede med, men det viste
sig, at den ganske rigtigt blev submittet, men i en onsubmit handler var
den ikke opdateret i forhold til JS inden submit.

Det var bare lige en note hvis man oplever mærkværdigheder med IE6 på den
front.

Da jeg ikke har nyere, ved jeg ikke om det også gælder disse IE'ere.

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (10-09-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 10-09-09 19:41

Rune Jensen skrev:
> http://webdesigngruppen.dk/diskussion.asp?pagenumber=1
>
> Den tilhørende JS hedder select_page.js
>
> Den gør, man kan skifte side (bladre) med både mus og taster i
> drop-down'en. Men resultatet er ikke ens, om det er med mus eller
> taster. Det virker fint med mus. Med taster, bliver værdien af
> pagenumber tilsyneladende 1 højere - hvorfor???

Nu hvor problemet er løst, vil jeg da lige spørge hvilke taster man skal
trykke på.

--
Philip - http://chartbase.dk | http://www.hitsurf.dk

Rune Jensen (10-09-2009)
Kommentar
Fra : Rune Jensen


Dato : 10-09-09 21:33

Philip Nunnegaard skrev:

> Nu hvor problemet er løst, vil jeg da lige spørge hvilke taster man skal
> trykke på.

Det ligger i drop down'en, hvor der via JS tjekkes for pil up/down samt
valg af side med retur. Ligeledes er der så en funktion til valg af side
med mus. Man bør også kunne TABbe sig til frem og tilbage-knapperne
iøvrigt (kan man i Firefox), men det er så ikke JS.

På et tidspunkt var tanken at lave det 100% diskret, men det ligger
langt ud i tiden. F.eks. lave det som en liste med links, som via
javascript blev omdannet til en drop down. På den måde ville det virke
100% både med og uden JS.

Alt andet lige, taster, hvis man gør sig det til en vane at bruge dem,
det er vildt meget hurtigere end mus, så det er ikke en dum idé at tage
det i betragtning som navigeringsmulighed. Og normale drop down af denne
art, hvor der ikke er en submit, tager sjældent højde for tastebrug.


MVH
Rune Jensen

Philip Nunnegaard (11-09-2009)
Kommentar
Fra : Philip Nunnegaard


Dato : 11-09-09 06:40

Rune Jensen skrev:

> Det ligger i drop down'en, hvor der via JS tjekkes for pil up/down samt
> valg af side med retur.

Nåååh... Man skal lige tabbe sig frem til at have den i fokus.
Der bruger jeg altid piletasterne. Eller næsten altid.
Hvis jeg på forhånd ved hvad jeg vil vælge fra select-boksen, og de har
forskellige forbogstaver, trykker jeg på forbogstavet til det jeg vil
vælge. Er der flere der begynder med samme bogstav, trykker jeg bare
igen og igen på samme bogstav, til det rigtige kommer frem.

Og ja! Det er vildt hurtigt, når man først har det i fingrene.
Formularer tabber jeg næsten altid igennem.


--
Philip - http://chartbase.dk | http://www.hitsurf.dk

Rune Jensen (11-09-2009)
Kommentar
Fra : Rune Jensen


Dato : 11-09-09 07:58

Philip Nunnegaard skrev:
> Rune Jensen skrev:
>
>> Det ligger i drop down'en, hvor der via JS tjekkes for pil up/down
>> samt valg af side med retur.
>
> Nåååh... Man skal lige tabbe sig frem til at have den i fokus.
> Der bruger jeg altid piletasterne. Eller næsten altid.

Kan du flytte fokus via piletaster? I hvilken browser? Eller har jeg
misforstået? Ikke fordi det ville faktisk være ret smart - hvis man så
lavede det generelt for alle browsere.

Jomen... jeg kunne godt lave det med accesskeys. Så er der bare det, at
visse browsere kræver 3 tastekombinationer for én accesskey. Det er lidt
bøvlet..

Så kan man lave det med JS og så "assigne" f.eks. pil frem og pil
tilbage, hvilket også er logisk, men jeg er ikke sikker på, at pil
frem/tilbage ikke bliver brugt til andre ting... samme problem egentlig
som med "rigtige" accesskeys.

Skulle man gøre noget, skulle det være udfra det numeriske tastatur, som
én vidst foreslog i en anden tråd. Det kunne man så lave med JS... og
her er chancen for konflikt meget lille, når det er tal.

> Hvis jeg på forhånd ved hvad jeg vil vælge fra select-boksen, og de har
> forskellige forbogstaver, trykker jeg på forbogstavet til det jeg vil
> vælge. Er der flere der begynder med samme bogstav, trykker jeg bare
> igen og igen på samme bogstav, til det rigtige kommer frem.

Jep... rigtigt smart ;)

Jeg bruger udelukkende taster til Oracle på arbejdet, og det går så
stærkt, maskinen næsten ikke kan følge med - he!



MVH
Rune Jensen

Birger Sørensen (11-09-2009)
Kommentar
Fra : Birger Sørensen


Dato : 11-09-09 09:37

Følgende er skrevet af Rune Jensen:
8X
> Skulle man gøre noget, skulle det være udfra det numeriske tastatur, som én
> vidst foreslog i en anden tråd. Det kunne man så lave med JS... og her er
> chancen for konflikt meget lille, når det er tal.
8X

Under forudsætning at tastaturet er slået til (NumLock). Ellers levers
noget andet end man tror.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (11-09-2009)
Kommentar
Fra : Rune Jensen


Dato : 11-09-09 09:48

Birger Sørensen skrev:
> Følgende er skrevet af Rune Jensen:
> 8X
>> Skulle man gøre noget, skulle det være udfra det numeriske tastatur,
>> som én vidst foreslog i en anden tråd. Det kunne man så lave med JS...
>> og her er chancen for konflikt meget lille, når det er tal.
> 8X
>
> Under forudsætning at tastaturet er slået til (NumLock). Ellers levers
> noget andet end man tror.

Det var jeg bange for..

Det er heller ikke særlig logisk, man skal have NUMLOCK på, for at kunne
navigere, egentlig.

Som sagt, så har de udbygget accesskeys i HTML5. Måske det kan hjælpe,
når det er, jeg har ikke nærlæst specifikationen. Indtil da er det mest
halve løsninger - og netop tastebrug og muligheden for inteferens med
andre funktioner har været diskuteret nærmest siden starten på HTML. Der
er bare ikke fundet nogen 100%-løsning indtil nu. Tilhængere og
modstandere af accesskeys/quicktaster er ca. lige stor, vil jeg tro..
Ærgerligt, for det er virkelig en optimering med tastenavigering, hvis
man kunne finde en slags standard (det skulle så bl.a. være en række
taster, som er fuldstændigt "frie" for andre funktioner, og som nemt kan
tilgås _helt_ ens i alle browsere).


MVH
Rune Jensen

Birger Sørensen (11-09-2009)
Kommentar
Fra : Birger Sørensen


Dato : 11-09-09 10:45

Rune Jensen formulerede spørgsmålet:
> Birger Sørensen skrev:
>> Følgende er skrevet af Rune Jensen:
>> 8X
>>> Skulle man gøre noget, skulle det være udfra det numeriske tastatur, som
>>> én vidst foreslog i en anden tråd. Det kunne man så lave med JS... og her
>>> er chancen for konflikt meget lille, når det er tal.
>> 8X
>>
>> Under forudsætning at tastaturet er slået til (NumLock). Ellers levers
>> noget andet end man tror.
>
> Det var jeg bange for..
>
> Det er heller ikke særlig logisk, man skal have NUMLOCK på, for at kunne
> navigere, egentlig.
>
> Som sagt, så har de udbygget accesskeys i HTML5. Måske det kan hjælpe, når
> det er, jeg har ikke nærlæst specifikationen. Indtil da er det mest halve
> løsninger - og netop tastebrug og muligheden for inteferens med andre
> funktioner har været diskuteret nærmest siden starten på HTML. Der er bare
> ikke fundet nogen 100%-løsning indtil nu. Tilhængere og modstandere af
> accesskeys/quicktaster er ca. lige stor, vil jeg tro.. Ærgerligt, for det er
> virkelig en optimering med tastenavigering, hvis man kunne finde en slags
> standard (det skulle så bl.a. være en række taster, som er fuldstændigt
> "frie" for andre funktioner, og som nemt kan tilgås _helt_ ens i alle
> browsere).
>
>
> MVH
> Rune Jensen

Jeg har prøvet i forme, at bruge accesskeys - og er holdt op igen.
Når man endelig finder en key der kan bruges i een browser, bruges den
af en anden browser.
Så før det overhovedet kan lade sig gøre, skal browserproducenterne
blive enige om hvilke tastekombinationer de selv vil bruge, så
designere ved hvilke de kan bruge til indholdet.
Det kan føre til en diskussion, om hvorvidt siden som browseren viser
er den vigtige, eller browseren selv. Men under alle omstændigheder,
vil det være forvirrende for brugeren, hvis samme tastekombination
nogen gange gør det ene og andre noget andet.

[Alt] er knyttet til menuer. (Historisk)

[Shift] er håbløs som accesskey i forme (brugeren skriver tekst, hvor
[Shift] kan indgå naturligt)

[Ctrl] - visse browsere gør flittigt brug af dem, hvilket gør det
umuligt eller uhensigtsmæssigt at bruge dem som accesskeys, med mindre
man vil sidde og vride sin hjerne af led, for at omformulere teksten i
en label til noget der betyder det samme som det der burde stå, men har
karakterer der kan bruges.
Mener i øvrigt at det er helt misforstået. Prøv at se i menuerne på din
browser, hvor mange funktioner det allerede er muligt at anvende fra
tastaturet, og som alligevel har en [Ctrl] genvej. FF f.eks. Et nyt
vindue åbnes med [Alt]f [Alt]v. Hvorfor skal den funktion så blokere
anvendelse af [Ctrl]n til noget andet? Jo den sparer een tastning - til
gengæld skal der tastes 28 gange for at tabbe sig frem til linien hvor
jeg skal skrive mit Navn (hvilket er det vigtige, jeg skal på den side,
jeg har åbnet i browseren), fordi alle de bogstaver der kunne være
anvendt til accesskeys, er blokeret af browserens [Ctrl] genveje.
Det er nem betjening af browseren - men producenten har glemt hvad
browseren egentlig skal bruges til.

Funktionstasterne - hvis på et site, skal forklares. Men de ville være
ret oplagt til brug i browserne, i stedet for kombinationerne med
[Ctrl].

Så er der kombination af [Shift], [Alt] og [Ctrl], og vi er ude i
noget, hvor det ikke nødvendigvis er nemmere end lige at flytte musen
og klikke - lidt afhængigt af hvor mange forsøg man skal bruge til at
finde den rigtige kombination af de tre, til faktisk at aktivere den
angivne accesskey, og hvor mange andre funktioner, man lige
tilfældigvis får aktiveret og skal lukke/afbryde, før man kan komme
videre, med det man var i gang med.

[Tab] og [Shift][Tab] gør det nemt at udfylde forme. Men man er stadig
nødt til at flytte med musen til den første, hvis man ikke gider tabbe
gennem alle browserens egne funktioner først.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (11-09-2009)
Kommentar
Fra : Stig Johansen


Dato : 11-09-09 13:12

Rune Jensen wrote:

> men jeg er ikke sikker på, at pil
> frem/tilbage ikke bliver brugt til andre ting...

Vandret scroll - (forudsat du mener venstre og højre pil).

Men i forhold til en anden tråd, så er det måske ikke voldsomt relevant at
have vandret scroll på et galleri(?)

--
Med venlig hilsen
Stig Johansen

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

Månedens bedste
Årets bedste
Sidste års bedste