Avatar billede thoegersen Nybegynder
10. januar 2005 - 21:36 Der er 3 kommentarer og
1 løsning

Tildele Shift+tab til anden tast

Jeg har lavet en beregningsformular der indeholder en hel del indtastningsfelter. For at gøre indtastningen brugervenlig vil jeg gerne lave det sådan at man kan tabbe tilbage med / tasten og tabbe frem med + tasten i det numeriske tastatur.

Tabbe frem har jeg løst med følgende kode: 

<script language="javascript" type="text/javascript">

document.onkeydown = checkKey;

function checkKey(oEvent){
  var oEvent = (oEvent)? oEvent : event;
  var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
  if(oTarget.type=="text" && oEvent.keyCode==107)
    oEvent.keyCode = 9; 
}

</script>

Tab tilbage vil ikke lykkes da jeg ikke kan finde en keycode for den. Er der nogen der kan hjælpe?
Avatar billede olebole Juniormester
10. januar 2005 - 21:57 #1
<ole>

Find keyCodes med denne her:

<script type="text/JavaScript">
function CheckKeys(){
  var key = event.keyCode;
  alert(key)
  event.cancelBubble = true;
  event.keyCode = 0;
  return false;
}
document.onkeydown = CheckKeys;
</script>

/mvh
</bole>
Avatar billede thoegersen Nybegynder
11. januar 2005 - 07:17 #2
Løser ikke umiddelbart problemet. Jeg får at vide at shift tasten har keycode=16 og tab tasten har keycode=9. Men hvad når de er trykket ned samtidig?
Avatar billede thoegersen Nybegynder
11. januar 2005 - 09:35 #3
Jeg vil lige tilføje at jeg faktisk har søgt en del, for at finde løsningen. Jeg har ikke kunne finde en keyCode for shift+tab. Scripts der kan håndtere to taster samtidig fortæller mig at shift=true og keyCode=9. Jeg har forsøgt på forskellig vis, at lave et script der sætter shift=true og kalder keyCode=9 samtidig, men det vil ikke lykkes.

Jeg har eksempelvis prøvet med:

if(oTarget.type=="text" && oEvent.keyCode==111)
window.event.shiftkey && oEvent.keyCode = 9;

eller

oEvent.keyCode = 16 && oEvent.keyCode = 9;


Ovenstående virker ikke og giver begge javascript fejl i browseren. Nogen forslag til løsning?
Avatar billede thoegersen Nybegynder
30. januar 2005 - 21:53 #4
Jeg lukker spørgsmålet, da jeg trods ihærdig søgen ikke har kunne finde en metode i javascript til at lave shift+tab, og da det heller ikke lader til andre kan hjælpe mig. Jeg har i stedet løst problemet på en anden måde.

Til hver af mine textbokse har jeg lavet en:

onkeypress="return ShiftTabX(event, this)"

Hvor X er tallene fra 1 til 26, da jeg har 26 tekstbokse i min formular.

I sidens <head> har jeg så lavet 26 javascript funktioner udfra nedenstående princip:

function ShiftTab1(eventObj, obj){
  var keyCode
  // check for browsertype
  if (document.all){
        keyCode=eventObj.keyCode
    }
    else{
        keyCode=eventObj.which
    }
  var str=obj.value

    if(keyCode==47){
    document.forms[0].TxtBegGr5.focus();
    document.forms[0].TxtBegGr5.select();
        return false;
  } 
}
Princippet er så at når der trykkes / i det numeriske tastatur, så sættes fokus i den forrige tekstboks. Dvs. for brugeren kommer det til at virke som om / tasten svarer til shift+tab. Det er godt nok en noget bøvlet måde at gøre det på, men det virker efter hensigten.
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