Jeg prøver en sidste gang: Hvordan ser koden ud? Det _kan_ ikke være den kode, du bruger - og slet ikke med den beskrivelse, du giver i spørgsmålet. Det er ikke engang copy/paste
- her har i hvert fald aldrig stået en værdi: value="<%= telefon %>" - så noget tyder på, du ikke skriver, hvad der står - og så er det jo svært at hjælpe. Det kan måske hænge sammen med, at du skal bruge onkeypress i Mozilla og onkeydown i IE - men det er som sagt ikke let at vide, om det er dér, fejlen ligger
Hvorfor det, hvad skal jeg jeg bruge onmousedown... mener du onkeydown..
Men hvorfor det... Mit script virker jo perfekt, på nær at jeg ikke kan bruge del, tab, backslash, højre/venstre pil tast som jeg kan i IE med den her kode...
Det jeg vil have hjælp til er i bund og grund if sætningen her: if(event.which < 45 || event.which > 57) Hvor jeg vil have at men godt må trykke på which = 8,9,46,37,29 og de nummeriske værdier...
- og du ved ikke, hvad det er, du vil have hjælp til. Du ved, hvad du gerne vil ende med - men årsagen til du spørger, er jo netop, du ikke ved, hvad der er galt ;o)
Så vidt jeg husker, er der noget med 'Delete' - så det kan godt være, du skal stoppe den fra at bobble videre i hierakiet. Prøv evt: onKeydown="if(!isNS4){if(event.keyCode < 45 || event.keyCode > 57) event.cancelBubble=true;event.returnValue = false;}else{if(event.which < 45 || event.which > 57) return false;}" - hvis ikke onkeydown alene virker på 'Delete'
Men når jeg kan teste at onkeypress virker fint i IE, hvorfor skal jeg så bruge den onkeydown når du siger at den ikke virker i mozilla, Så udfra det kan jeg vil konkludere at det virker dertil. og at det virker med
Jeg er alt for uvidende til at hjælpe én, der er _så_ klog! Hvis du ikke havde spildt min tid, men testet, hvad jeg skrev, ville du vide, at det, jeg har skrevet, virker præcis, som du ønsker i IE!
Derfra kunne vi så have taget den videre - men lad os bare være enige: Det gider vi ikke.
Jeg så på din kode - og ikke hvad du skrev - og det var et tilfælde, dit script virkede i IE. Det gjorde nemlig ikke, hvad der stod - men visse taster opfører sig anderledes :)
Sådan bør du nok gøre i stedet:
var isNS4 = (navigator.appName=="Netscape")?1:0; function bla(e) { var s,k = e.keyCode; s = ":8:9:37:39:46:"; if ((k<45 && s.indexOf(":"+k+":")==-1) || (k>57 && s.indexOf(":"+k+":")==-1)) { if (!isNS4) { e.cancelBubble = true; e.returnValue = false; } else { e.stopPropagation(); e.preventDefault(); } } } </script>
I Moz kan du ikke cancel'e en key på onkeydown. Der har alle keys ellers en keyCode. På onkeypress kan du cancel'e en key, men der returnerer nogle keys 0 på keyCode - men den korrekte værdi på which - og omvendt :P
- squide godt ... så må du endnu engang undskylde, jeg fik kaget rundt i, hvad det var, der skulle ske :)
Tak for points ;o)
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.