sætte eventhandler via programmering driller!
Hejsa eksperterJeg har et problem angående en form, som jeg leger lidt med :
Meningen med formen er, at det element, som har fokus har en anden farve end resten, sådan at folk, som måske ikke kan se en blinkende cursor alligevel ved, hvor man er henne:-)
Jeg kunne så gå igang med at putte
onFocus="changeClass(this,'highlighted');" onBlur="changeClass(this,'normal');"
på alle elementer i formen
(som jeg har gjort på http://www.the-source.dk/accessibleForm/accForm-everyTag.html )
Men jeg tænker at det må kunne gøres lettere ...
F.eks. ville jeg gerne have det sådan at det evt kan programmeres via JavaScript ved hjælp af en funktion
makeAccessibleForm( formObjekt, highlightClassName, normalClassName );
Så jeg er begyndt at programmere det lidt --- Jeg finder alle elementer i formen (alle input pt) via
formObjekt.getElementsByTagName("input");
og sætter derefter deres onFocus og onBlur Event Handler ved at tildele en annonym funktion således
c.onfocus = function fOnFocus() {c.className=clsHighlighted;}
(c = input-elementet i forløkken...)
Nu er der bare sådan, at forløkken åbenbart går fint igennem - den tager alle inputfelter og sætter onFocus og onBlur event-handleren - men når jeg så klikker på et af formens input-felter, så er det altid den sidste i forløkken, som hele tiden modtager den onFocus---
underligt ...
Jeg har lagt kode op på www.the-source.dk
versionen, hvor der er eventhandler på alle tags (men som virker efter hensigten...)
www.the-source.dk/accessibleForm/accForm-everyTag.html
versionen, hvor jeg forsøger at programmerere, men hvor det driller
www.the-source.dk/accessibleForm/accForm-programmed.html
Hvad jeg ønsker er
1) at man forklarer, hvorfor accForm_programmed.html ikke virker efter hensigten
2) evt. giver et hint om, hvordan jeg nemt og effektivt kan sætte eventhandlerne for alle form-elementer som har onFocus/onBlur event -- (i øjeblikket hardcoded til "input-tags only!")
/Søren Munk Skrøder
til sidst et lille sidespørgsmål, som evt. gerne må besvares (men som ikke er nødvendigt) - hvorfor sættes border ikke på et select-element ?
