23. februar 2011 - 08:40Der er
7 kommentarer og 1 løsning
Skriv numre i et felt
Hej,
Jeg har nedenstående kode, hvor man kan klikke på et 'nummertastatur' (bruges på touch skærm). Tal bliver skrevet i et felt 'varenr'. Det fungerer i princippet ok, men problemet er, at hvis man taster/klikker to tal hurtigt lige efter hinanden, så bliver kun det første tal skrevet i feltet.
<html> <script type="text/javascript"> function addNo(No) { document.forms.BrugerForm.varenr.value=document.forms.BrugerForm.varenr.value+No; } </script>
Hvis jeg var dig ville jeg bruge jquery. Så vil du kunne gøre der på følgende måde hvis du sørger for at alle dine knapper har denne class="callAddNum" og giver dit input felt dette id : id="varenr"
#1. Det løser ikke problemet. Desuden erstatter du bare værdien af feltet med det du indtaster (og du har valgt feltets name, og ikke value).
#0 Det er relativt komplekst, da du, næsten, gør det på den simpleste måde. At du når at trykke en gang mere inden funktionen bliver kørt er ikke lige til at ændre. Det kan godt lade sig gøre, men det bliver betydelig mere komplekst.
Jeg ved ikke om problemet er stort nok til at retfærdiggøre det? Brugeren kan jo bare trykke på knappen igen.
Du kan gøre det lidt mere effektivt ved at give varenr et id: <input type="text" maxlength="8" name="varenr" id="varenr" style="font-size:36px; width:280px;">
Ændre alle dine input felter fra, f.eks.: addNo('7');
til: addNo(7);
Altså fjerne citationstegn.
Og så ændre din funktion til: function addNo(No) { var e = document.getElementById('varenr'); e.value = e.value+''+No; }
Det vil, alt andet lige, være hurtigere at køre i browseren. Det vil ikke løse problemet helt, men måske få den til at køre hurtigt nok til, at man typisk ikke vil opleve problemet, selvom man trykker på 2 knapper hurtigt.
Eller måske 'onClick' eventen. Prøv at lav dem om til 'onmousedown'. Det vil få dine events til at blive kørt hurtigere. Jeg ved ikke om den fungerer med touch, men det vil jeg tro.
Synes godt om
Ny brugerNybegynder
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.