Avatar billede bas Forsker
23. juli 2007 - 11:31 Der er 10 kommentarer og
2 løsninger

Skift felt ved Enter?

Hej

Kan man lave noget javascript, der gør det muligt, at
skifte til næste formularfelt ved tryk på Enter (ved de nummeriske taster)?

Hvis ja, hvordan?
Kan nogen henvise til kode / eksempel?

Jeg er godt klar over, at det måske ikke vil
være så hensigtsmæssigt at implementere den mulighed,
men jeg har fået forespørgslen fra en bruger, og vil lige undersøge muligheden.

På forhånd tak.

Med venlig hilsen
Martin
Avatar billede w13 Novice
23. juli 2007 - 15:42 #1
Du kan ikke (så vidt jeg ved) få den til at reagere _kun_ ved tryk på enter ved de nummeriske taster. De er begge enter-taster, det gælder, er jeg bange for.

Prøv at se på det her kodeeksempel:
------------------------------------
<script type="text/JavaScript" language="JavaScript">
function showkey(KeyCode) {
    if(KeyCode==13){document.getElementById("felt2").focus()}
}
</script>

<p><input type="text" value="Sæt markøren her og tryk på enter" onKeyDown="showkey(event.keyCode)"></p>

<p><input id="felt2" type="text"></p>
Avatar billede w13 Novice
23. juli 2007 - 15:48 #2
Hov, variablen må vist ikke hedde keycode..
------------------------
<script type="text/JavaScript" language="JavaScript">
function showkey(strkey) {
    if(strkey==13){document.getElementById("felt2").focus()}
}
</script>

<p><input type="text" value="Sæt markøren her og tryk på enter" onKeyDown="showkey(event.keyCode)"></p>

<p><input id="felt2" type="text"></p>
Avatar billede bas Forsker
23. juli 2007 - 15:55 #3
Mange tak det ser ud til at fungere, men det ja, det gælder også den anden Enter-tast.

Jeg har fået hjælp til et script, der forhindrer formularen i at blive submittet ved tryk på enter-tasten. Så måske kan man lave en kombination af de to scripts.

Jeg venter lige og ser, om her skulle komme andre bud.
Ellers går pointene naturligvis til dig.

Dit script gør jo det jeg spørger om ;-)
Avatar billede w13 Novice
23. juli 2007 - 16:01 #4
Oki :)
Avatar billede olebole Juniormester
23. juli 2007 - 22:32 #5
<ole>

Du kan ikke diskriminere mellem de to Enter-knapper, men denne kode gør ellers, hvad du gerne vil og undlader at sende formen på Enter. Desuden kan du navngive det nye felt - du gerne vil ned til - der, hvor du kalder funktionen:

<script type="text/JavaScript" language="JavaScript">
function showkey(e, sNextID) {
    e = e ? e : event;
    if(e.keyCode==13){
        document.getElementById(sNextID).focus();
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
        e.cancelBubble = true;
        e.returnValue = false;
    }
}
</script>

<p><input type="text" value="Sæt markøren her og tryk på enter" onKeyDown="showkey(event, 'felt2')"></p>

<p><input id="felt2" type="text"></p>

/mvh
</bole>
Avatar billede thesurfer Nybegynder
01. august 2007 - 00:09 #6
Er man kommet videre?
Avatar billede bas Forsker
01. august 2007 - 19:48 #7
Ja, undskyld de forskellige scripts herover ser ud til at fungere efter hensigten.
Er det w13 eller olebole der skal have points, eller skal de dele dem?

/Martin
Avatar billede w13 Novice
01. august 2007 - 20:09 #8
Det kommer vel an på, hvilken kode, du ender med at bruge. =)

Ellers deler jeg gerne, så her er i hvert fald et svar.
Avatar billede bas Forsker
01. august 2007 - 21:25 #9
Ok, jeg venter lige lidt og ser, om olebole også vil have points.
Ellers er de dine.
Avatar billede olebole Juniormester
01. august 2007 - 22:12 #10
Det må komme anpå, hvad du bruger  =)
Avatar billede olebole Juniormester
08. august 2007 - 16:01 #11
Tak for points  =)
Avatar billede w13 Novice
08. august 2007 - 16:21 #12
Takker! :)
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