"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:4b73c448$0$36582$edfadb0f@dtext01.news.tele.dk...
> Vi har et antal stregkodelæsere, der er sat op til at sende ALT-S før
> stregkoden kommer.
>
> På websiden vi bruger til at styre varelageret med er der sat
> accesskey="S", så cursoren automatisk hopper til feltet, hvor stregkoden
> skal indlæses.
>
> Men nu har jeg en formular, hvor der skal indlæses mange stregkoder.
>
> Fjerner jeg accesskey="S", åbner IE dropdownmenuen "viS" når der scannes
> en stregkode.
> Sætter jeg accesskey="S" på alle stregkodefelterne, hopper cursoren ud af
> det stregkodefelt man har sat den i, og videre til det næste
> stregkodefelt, når der scannes en stregkode.
>
> Jeg har prøvet med
>
http://www.openjs.com/scripts/events/keyboard_shortcuts/# der kan fange
> keyboard-shortcuts, og kalde en javascript-funktion. Men selvom Alt+S
> fanges, så åbner IE alligevel dropdownmenuen "viS".
propagate er sat til false, gjorde ingen forskel.
det fungerer i firefox, men det er ikke muligt at få alle til at skifte,
specielt ikke før jeg har fået skiftet en html-editor ud med CKeditor, så
_det_ virker i firefox.
> Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til
> at sende et andet prefix...
Jeg løste det med at lave en onFocus='setaccess(this)' på stregkodefelterne.
function setaccess(felt) {
var felter=document.getElementsByTagName("input")
for (var n=0;n<felter.length;n++) {
if (felter[n].type=="text" && felter[n].accessKey=="S") {
felter[n].accessKey="";
}
};
felt.accessKey="S";
}
Fjern alle accessKey="S" og føj det til det felt, der er focus på, så Alt+S
ikke flytter focus.
Leif