og hvis du absolut vil tillade, at brugeren også kan slette nogle af tallene igen skal du skrive: function numbersOnly(e) { e = (e) ? e : event; k = (typeof e.keyCode) ? e.keyCode : e.which; access = ((k >= 48 && k <= 57) || (k >= 96 && k <= 105) || k == 8); }
roenving > Hmm, delete virker ikke som det er nu. Hvis jeg skriver 123456, bruger musen til at sætte cursoren i mellem 3 og 4, så kan jeg slette 123 med backspace, men kan ikke slette 456 med delete?
aah, nu forstår jeg meget bedre forskellene på de to events.
Det lader til, at i Mozilla finder onkeyup/down kun tastaturkoden (keyCode), mens der ved onkeypress findes _enten_ en tastaturkode eller en ascii-kode (charCode). Ascii-koden sættes kun man bruger fx tallene og bogstaverne, mens tastatur-koden stadigvæk sættes når man fx bruger piletasterne. Man skal altså (i Mozilla) skelne mellem disse to når man bruger funktionen ved press-eventen. I IE derimod findes der ikke nogen charCode, men her bruger den bare keyCode lige meget hvad.
Da jeg først lavede scriptet blev jeg derfor nød til at først køre funktionen ved onkeydown hvor jeg i Mozilla kunne finde tastatur-koden (keyCode) og derefter returnerer true eller false ved onkeypress (det er nemlig kun ved onkeypress du rent faktisk kan stoppe brugerens input). Men nu kan jeg se det meget lettere kan skrives som:
function numbersOnly(e) { e = (e) ? e : event; c = e.charCode; k = (typeof e.keyCode) ? e.keyCode : e.which; return ((c >= 48 && c <= 57) || (k >= 48 && k <= 57) || k == 8 || (k >= 37 && k <= 40) || k == 46); }
Angående bonusspørgsmålet til 1000 kr. så er tastatur-koden 13 for enter. Dvs. du kan skrive: onkeypress="if (event.keyCode == 13) {enFunktion();}"
Hvis dit felt er inden i en form, så vil enter-trykket jo typisk også submitte formen. Så du kunne jo også kalde funktionen med onsubmit-eventen: <form onsubmit="enFunktion();"> evt. returnere enten true eller false afhængigt af om du vil have formularen sendt videre (submittes) eller ej.
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.