20. februar 2005 - 21:50Der 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 !
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?
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 :)
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>
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 :)
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.