webForumDet fria alternativet

fixa siffror + tecken i ett fält...

JavaScriptur Javascript

3 svar · 319 visningar · startad av garda

gardaMedlem sedan dec. 200139 inlägg
#1

Har använt detta för att kolla att man skriver in siffror och ev. ett - i ett input fält:
<input type="text" id="art" size="7" onKeyUp="if (!/^[0-9-]+$/.test(this.value)) this.value = this.value.substring(0, this.value.length - 1)">

Men skulle vara mycket smidigare om man automatiskt kunde fixa så efter tre siffror kom ett - och sedan kunde man skriva tre siffror till
(ex. 123-456 ett artikel nr. som alltid ser ut så...)

Har någon ett tips??
/ Magnus

Jesper TMedlem sedan nov. 20017 144 inlägg
#2
<script>
function valid(){
var myText=document.foo.bar.value;

if (myText.length==3){
myText+='-';
};

if (!/^[0-9-]+$/.test(myText)){ 
myText = myText.substring(0, myText.length - 1)
};
document.foo.bar.value=myText;
};
</script>

<form name="foo">
<input type="text" name="bar" size="7" onKeyUp="valid();">
</form>

Kanske...

gardaMedlem sedan dec. 200139 inlägg
#3

Tack, det funkar perfekt!! ...men om jag vill använda detta på flera fält kan jag skicka med vilket? tex onKeyUp="valid(bar1);"

vad skriver jag i funktionen? Har fixat en ful-lösning i php men det går nog på ett smidigare sätt.
/ Magnus

Jesper TMedlem sedan nov. 20017 144 inlägg
#4
<script>
function valid(elm){
var myText=document.foo.elements[elm].value;

if (myText.length==3){
myText+='-';
};

if (!/^[0-9-]+$/.test(myText)){ 
myText = myText.substring(0, myText.length - 1)
};
document.foo.elements[elm].value=myText;
};
</script>

<form name="foo">
<input type="text" name="bar1" size="7" onKeyUp="valid('bar1');">
<input type="text" name="bar2" size="7" onKeyUp="valid('bar2');">
<input type="text" name="bar3" size="7" onKeyUp="valid('bar3');">
</form>
135 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)