PalleMedlem sedan apr. 20002 716 inlägg
Jag använder följande kod för att förhindra att annat än siffror anges i formuäret:
[red]onkeyup="this.value=this.value.replace(/\D/g,'');"[/red]
Tyvärr så kan man heller inte flytta markören framåt och bakåt med piltangenterna
i textfältet om man skulle vilja ändra på det som man skrivit in.
Någon som har en lösning på detta? :)
@ndersMedlem sedan juni 200026 914 inlägg
Så här kan man göra. Om det är den bästa / rättaste lösningen har jag dock ingen aning om.
onkeyup="if(event.keyCode!=37 && event.keyCode!=39) this.value=this.value.replace(/\D/g,'');"
Mvh
PalleMedlem sedan apr. 20002 716 inlägg
Fungerar prima, tackar! :bire
@ndersMedlem sedan juni 200026 914 inlägg
Fungerar inte alls helt prima, ju. ;)
Visst kan man flytta markören med piltangenterna, men ändrar man något i fältet hamnar markören sist i alla fall.
(Jag sitter och jobbar med samma problem, men jag funderar på om man helt enkelt ska göra ersättningen onblur istället.
Mvh
PalleMedlem sedan apr. 20002 716 inlägg
Nja, ok då.. om man ska hårddra det. ;)
JojoxxMedlem sedan juni 20004 306 inlägg
Så här kanske:
<input type="text" onkeyup="if(!this.value.match(/^\d+$/)){ this.value=this.value.replace(/\D/g,''); }">
PalleMedlem sedan apr. 20002 716 inlägg
Jojoxx: Nu är vi nära mitt mål, dock inte helt perfektionerat ännu. ;) :e
Skriver man in ex '123' och sedan ändrar '1' till ex. 'D' så tas bokstaven bort - korrekt,
dock så hoppar nu curson till sista plats i textfältet igen, och det vill jag gärna undvika om det går.
Jag vill att bokstaven ska tas bort men att curson ligger kvar på platsen där bokstaven fanns.
Går det? :)
@ndersMedlem sedan juni 200026 914 inlägg
Det finns ingen funktion typ "this.returnCursorToWhereItUsedToBeCauseThatsWhereWeWantIt()" som man kan köra inne i if-satsen? ;)
Jag kan dela på den med Palle. :)
Jag passar på att tacka Jojoxx jag också, trots att det inte är min tråd, för nu ser min funktion ut så här, och fungerar finemang:
function replaceChars(obj) {
if(obj.value.match(/<|>/g))
obj.value=obj.value.replace(/<|>/g,'');
}
spangoMedlem sedan juni 20006 147 inlägg
@ndersMedlem sedan juni 200026 914 inlägg
Tack för trevlig länk, spango! :)
Erik JuhlinMedlem sedan maj 20007 625 inlägg
Jag har skrivit så här på ett ställe:
function isDigit()
{
return ((event.keyCode >= 48) && (event.keyCode <= 57));
}
<input type="text" name="x" onKeyPress="event.returnValue = isDigit();">
Förhindrar ju inte paste och liknande, men i kombination med Jojoxx script eller ännu hellre en kontroll i onSubmit så skulle det funka bra. :)