Avatar billede dang Praktikant
20. februar 2005 - 21:50 Der er 8 kommentarer og
1 løsning

Skifter felt efter 3 anslag

Jeg skal til at lave en lille form til udregning af nogle højde/brede/dybde mål ! Så kunne jeg godt tænke mig at formen blev sat sådan op at når man har tastet 3 anslag i et felt så hopper ursoren automatisk vidre til næste felt ! Kan det lade sig gøre !
Avatar billede olebole Juniormester
20. februar 2005 - 22:00 #1
<ole>

Hvad skal der ske, hvis jeg indtaster 123 i stedet for 124, som var det, jeg mente?

Så skifter feltet - og hvis jeg går tilbage i 'det gamle' felt, er dette allerede udfyldt med tre tegn. Skal jeg så smides videre - eller skal jeg have lov til at rette min fejl ... og hvordan skal vi mon genkende en handling som en rettelse?

/mvh
</bole>
Avatar billede dang Praktikant
20. februar 2005 - 22:08 #2
den skal ikke lave nogen validering af feltet, den skal bare gå vidre til næste felt, så man er fri for at skulle bruge "tab" tasten
Avatar billede olebole Juniormester
20. februar 2005 - 22:24 #3
Ja, og hvad så, hvis jeg skal rette i et felt, der allerede har tre tegn i sig? Hvordan skal jeg som bruger få lov til at rette feltet, hvis jeg bliver smidt videre, når der er skrevet tre tegn i et felt?

Jeg er helt sikker på, du ikke har tænkt problemet ordentligt igennem  :)
Avatar billede dang Praktikant
20. februar 2005 - 22:44 #4
det er til en lille omregner jeg selv skal bruge på arbejdet :P
Avatar billede dang Praktikant
20. februar 2005 - 22:45 #5
Men jeg er glad for at du tænker det så langt igennem, takker :o)
Avatar billede olebole Juniormester
21. februar 2005 - 00:24 #6
Du må ikke misforstå mig ... jeg forstår godt, hvad det er, du ønsker. Man bruger det også af og til ved udfyldning af registreringsnøgler til software. Den er stadig ikke tænkt ned til detaaljen - så der ligger sikkert stadig en djævel eller to gemt - men ellers kan du løse det på denne måde:

<script type="text/JavaScript">
function myCheck(elm, e) {
    var aInpts, found=false; kC = (window.event? window.event : e).keyCode;
    if (kC==8 || kC==46 || (kC>36 && kC<41)) return;
    if (elm.value.length<3) return;
    aInpts = document.getElementById("myForm").getElementsByTagName("input");
    for (i=0,j=aInpts.length; i<j; i++) if (aInpts[i]==elm && i<j-1) {found=i+1;break};
    if (found) aInpts[found].focus();
}
window.onload = function() {
    var aInpts = document.getElementById("myForm").getElementsByTagName("input");
    for (i=0,j=aInpts.length; i<j; i++) {
        if (aInpts[i].type.toLowerCase()!="text") continue;
        aInpts[i].setAttribute("autocomplete", "off");
        aInpts[i].onkeyup = function(e) {
            myCheck(this, e);
        }
    }
}
</script>

<form id="myForm">
    <input type="text"><br>
    <input type="text"><br>
    <input type="text"><br>
</form>

Det åbner muligheden for at bruge pil-tasterne, 'Del' og 'Back-Space', selvom der er tre tegn i feltet.

Tag dig ikke af den sære linie:
    aInpts[i].setAttribute("autocomplete", "off");
- den står der for at overvinde en af Mozilla Firefox's utallige JavaScript-bugs  :)
Avatar billede dang Praktikant
21. februar 2005 - 07:11 #7
Det virsker som det skal :P Send svar :o)
Avatar billede olebole Juniormester
21. februar 2005 - 19:06 #8
... sendt  ;o)
Avatar billede dang Praktikant
21. februar 2005 - 19:13 #9
Velbekomme :P
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