/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
"Kun tal"
Fra : Henrik


Dato : 12-04-07 15:40

Hej...
Hvordan gør man sådan at der kun kan være tal i en textbox?




 
 
Christian Hansen (13-04-2007)
Kommentar
Fra : Christian Hansen


Dato : 13-04-07 13:27

Henrik wrote:
> Hej...
> Hvordan gør man sådan at der kun kan være tal i en textbox?
>

En hurtig måde:


<input type="text" onKeyUp="this.value = this.value.replace(/[^0-9]/g,'');">

Mvh Christian

Martin (13-04-2007)
Kommentar
Fra : Martin


Dato : 13-04-07 13:35

Christian Hansen wrote:
> Henrik wrote:
>> Hej...
>> Hvordan gør man sådan at der kun kan være tal i en textbox?
>>
>
> En hurtig måde:
>
>
> <input type="text" onKeyUp="this.value =
> this.value.replace(/[^0-9]/g,'');">

Eller måske

onkeyup="if(this.value.search(/[^0-9]/g))alert('Kun tal!');"


>
> Mvh Christian

Henrik Stidsen (13-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 13-04-07 13:55

Martin expressed precisely :
>> <input type="text" onKeyUp="this.value =
>> this.value.replace(/[^0-9]/g,'');">

> Eller måske
> onkeyup="if(this.value.search(/[^0-9]/g))alert('Kun tal!');"

Den vil godt nok være trist at have med at gøre - meget effektiv men
ikke særlig brugervenlig egentlig...

--
Henrik Stidsen - http://henrikstidsen.dk/
"Hot or Not" for fugle: http://fuglemarkedet.dk/galleriet/
"Advertising is the art of convincing people to spend money they don't
have for something they don't need." - Will Rogers



Martin (13-04-2007)
Kommentar
Fra : Martin


Dato : 13-04-07 14:24

Henrik Stidsen wrote:
> Martin expressed precisely :
>>> <input type="text" onKeyUp="this.value =
>>> this.value.replace(/[^0-9]/g,'');">
>
>> Eller måske
>> onkeyup="if(this.value.search(/[^0-9]/g))alert('Kun tal!');"
>
> Den vil godt nok være trist at have med at gøre - meget effektiv men
> ikke særlig brugervenlig egentlig...

Nej da... intet er brugervenligt når man skal lave sådan noget :)

Henrik Stidsen (13-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 13-04-07 16:24

Martin submitted this idea :
>>>> <input type="text" onKeyUp="this.value =
>>>> this.value.replace(/[^0-9]/g,'');">

>>> Eller måske
>>> onkeyup="if(this.value.search(/[^0-9]/g))alert('Kun tal!');"

>> Den vil godt nok være trist at have med at gøre - meget effektiv men ikke
>> særlig brugervenlig egentlig...

> Nej da... intet er brugervenligt når man skal lave sådan noget :)

Tjow, vil da mene det er mere brugervenligt at blokere for indtastning
af forkerte data i forhold til at brugeren skal lave en ommer.

Men, fejlene i forhold til brugervenlighed er med den løsning der at 1)
der kommer en popupalert der skal lukkes ned og 2) brugeren skal selv
slette de fejlagtige data.

--
Henrik Stidsen - http://henrikstidsen.dk/
"Hot or Not" for fugle: http://fuglemarkedet.dk/galleriet/
The illegal we do immediately. The unconstitutional takes a little
longer. - Henry Kissinger



Martin (14-04-2007)
Kommentar
Fra : Martin


Dato : 14-04-07 12:44

Henrik Stidsen wrote:
> Martin submitted this idea :
>>>>> <input type="text" onKeyUp="this.value =
>>>>> this.value.replace(/[^0-9]/g,'');">
>
>>>> Eller måske
>>>> onkeyup="if(this.value.search(/[^0-9]/g))alert('Kun tal!');"
>
>>> Den vil godt nok være trist at have med at gøre - meget effektiv men
>>> ikke særlig brugervenlig egentlig...
>
>> Nej da... intet er brugervenligt når man skal lave sådan noget :)
>
> Tjow, vil da mene det er mere brugervenligt at blokere for indtastning
> af forkerte data i forhold til at brugeren skal lave en ommer.

Det er så rigtigt, men engang imellem så tænker jeg bare at folk selv
godt kan tænke.
Hvis man nu skriver Årstal: <input...> også først laver tjekket efter
der er blevet submittet med både javascript tjek og serverside script.

> Men, fejlene i forhold til brugervenlighed er med den løsning der at 1)
> der kommer en popupalert der skal lukkes ned og 2) brugeren skal selv
> slette de fejlagtige data.

Hehe.. nu var min løsning nu også bare noget hurtigt oneline dims, sådan
bare for sjovt, men en sammenblanding af begge, ville måske være på den
rette plads imo.

Henrik Stidsen (13-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 13-04-07 14:00

Christian Hansen expressed precisely :
>> Hej...
>> Hvordan gør man sådan at der kun kan være tal i en textbox?

> En hurtig måde:
> <input type="text" onKeyUp="this.value = this.value.replace(/[^0-9]/g,'');">

Med den metode vil teksten blive skrevet og så fjernet. Det er
selvfølgelig ikke det store problem men det kan godt virke forvirrende.

Et alternativ er at lave en event på onkeydown, udpege de keycodes der
er ok og så returnere false ved alle andre. Så kan der slet ikke
skrives i boksen med mindre man skriver et tal. Man skal så huske at
returnere true ved piletaster, slet osv.

--
Henrik Stidsen - http://henrikstidsen.dk/
"Hot or Not" for fugle: http://fuglemarkedet.dk/galleriet/
"This is not some cheasy soap-opera." - Mike Flaherty, Spin City



Henrik (13-04-2007)
Kommentar
Fra : Henrik


Dato : 13-04-07 14:12

Der er ingen af delene der dur... den sætter streg under "Type" i Christians
udgave og "onkeyup" i Martins udgave.

Og Henrik Stidsen, har du en kode der bedere end deres?



Martin (13-04-2007)
Kommentar
Fra : Martin


Dato : 13-04-07 14:33

Henrik wrote:
> Der er ingen af delene der dur... den sætter streg under "Type" i Christians
> udgave og "onkeyup" i Martins udgave.

Christians virker helt perfekt...
Det må være dit site hvor du sætter den ind der er fejl i.

Min den skal lige omskrives til

<script type="text/javascript">
function check(str) {
   if(str.search(/^[0-9]/g)) {
      alert('Kun tal!');
      return false;
   }
}
</script>
<input type='text' name='text' id='text'
onkeyup="check(getElementById('text').value);"/>

Henrik Stidsen (13-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 13-04-07 16:29

Henrik has brought this to us :
> Der er ingen af delene der dur... den sætter streg under "Type" i Christians
> udgave og "onkeyup" i Martins udgave.

Det lyder mærkeligt... hvilken fejl siger den der er ?

> Og Henrik Stidsen, har du en kode der bedere end deres?

Ikke lige ved hånden men det er ikke så svært at lave. Det er sådan set
bare at kigge på keycode (det hedder den vist i alle browsere) på event
objektet og så lave if sætninger for at afgøre om der skal returneres
true eller false. Ved false tillades indtastningen ikke.

--
Henrik Stidsen - http://henrikstidsen.dk/
"Hot or Not" for fugle: http://fuglemarkedet.dk/galleriet/
"The precogs are never wrong. But sometimes they... disagree. "
- Dr. Iris Henimen, The Minority Report



Christian Hansen (13-04-2007)
Kommentar
Fra : Christian Hansen


Dato : 13-04-07 17:18

Henrik Stidsen wrote:

> Med den metode vil teksten blive skrevet og så fjernet. Det er
> selvfølgelig ikke det store problem men det kan godt virke forvirrende.

Jep - det var også bare hurtigt og beskidt :)

> Et alternativ er at lave en event på onkeydown, udpege de keycodes der
> er ok og så returnere false ved alle andre. Så kan der slet ikke skrives
> i boksen med mindre man skriver et tal. Man skal så huske at returnere
> true ved piletaster, slet osv.

Jep, jeg gad bare ikke lede efter keycodes for div, men nu har jeg så
gjrot det alligevel :)



<script type="text/javascript">
function numbersOnly(keycode) {
var keycodes = new Array(8,37,39,48,49,50,51,52,53,54,55,56,57);
for(var c = 0; c < keycodes.length; c++) if
(parseInt(keycodes[c]) == parseInt(keycode)) return true;
return false;
}//numbersOnly
</script>
<input type="text" onKeyDown="return numbersOnly(event.keyCode);"
onKeyUp="this.value = this.value.replace(/[^0-9]/g,'');">

Jeg har bibeholdt onKeyUp, da jeg på min computer kan overbelaste input
ved at taste samtidigt på flere bogstaver. Derved blev de alligevel
skrevet i feltet.

Mvh Christian

Henrik Stidsen (13-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 13-04-07 17:25

Christian Hansen brought next idea :
>> Med den metode vil teksten blive skrevet og så fjernet. Det er selvfølgelig
>> ikke det store problem men det kan godt virke forvirrende.

> Jep - det var også bare hurtigt og beskidt :)

Det er jo også rigeligt nogen gange,kommer an på formålet ;)

>> Et alternativ er at lave en event på onkeydown, udpege de keycodes der er
>> ok og så returnere false ved alle andre. Så kan der slet ikke skrives i
>> boksen med mindre man skriver et tal. Man skal så huske at returnere true
>> ved piletaster, slet osv.

> Jep, jeg gad bare ikke lede efter keycodes for div, men nu har jeg så gjrot
> det alligevel :)

Nej det er sådan noget man gør en gang og så gemmer man værdierne :)

> Jeg har bibeholdt onKeyUp, da jeg på min computer kan overbelaste input ved
> at taste samtidigt på flere bogstaver. Derved blev de alligevel skrevet i
> feltet.

Okay, det har jeg ikke oplevet - har til gengæld oplevet en onchange på
en selectbox der fik browseren til at gå ned hvis man scrollede med
scrollhjulet...

--
Henrik Stidsen - http://henrikstidsen.dk/
"Hot or Not" for fugle: http://fuglemarkedet.dk/galleriet/
Moo point: It´s like a cow´s opinion. It just doesn´t matter. It´s
"moo".
- Joey Tribianni, "The One Where Chandler Doesn´t Like Dogs".



Martin (14-04-2007)
Kommentar
Fra : Martin


Dato : 14-04-07 12:46

Henrik Stidsen wrote:
> Okay, det har jeg ikke oplevet - har til gengæld oplevet en onchange på
> en selectbox der fik browseren til at gå ned hvis man scrollede med
> scrollhjulet...

Det har jeg også, flere gange faktisk meget sjovt :)
Når jeg laver en onchange på en selectbox, så gør jeg det udelukkende
med noget ajax calls - der er heldigvis den "fordel" at ajax kun kan
køre 1 kommando adgangen. Eller rettere kommandoerne bliver gemt i
rammen, men ikke udført før der er plads til næste kommando.

Henrik Stidsen (16-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 16-04-07 10:56

On 14 Apr., 13:43, Martin <n...@natten-i.dk> wrote:
> > Tjow, vil da mene det er mere brugervenligt at blokere for indtastning
> > af forkerte data i forhold til at brugeren skal lave en ommer.

> Det er så rigtigt, men engang imellem så tænker jeg bare at folk selv
> godt kan tænke.

Puha, det er en dødssynd at tænke sådan når man udvikler software der
skal bruges af rigtige mennesker ;) Specielt hvis man tror de tænker
på samme måde som man selv gør - for det ved vi, det gør de aldrig ;)

Hvis folk selv ku tænke så var der jo ikke behov for fejlhåndtering,
validering osv overhovedet.

Men hvor ville det være dejligt hvis folk tænkte sig lidt om før de
bevidstløst trykker på alt hvad der kan trykkes på og mere til.


Martin (16-04-2007)
Kommentar
Fra : Martin


Dato : 16-04-07 12:01

Henrik Stidsen wrote:
> Hvis folk selv ku tænke så var der jo ikke behov for fejlhåndtering,
> validering osv overhovedet.
>
> Men hvor ville det være dejligt hvis folk tænkte sig lidt om før de
> bevidstløst trykker på alt hvad der kan trykkes på og mere til.

Selvfølgelig skal der jo være validering, så slipper man også får en
smule spam :)

Men jeg mener bare at valideringen først skal ske til sidst, altså når
der er trykket "submit"

Henrik Stidsen (16-04-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 16-04-07 12:24

On 16 Apr., 13:00, Martin <m...@SPAMscandesigns.dk> wrote:
> > Men hvor ville det være dejligt hvis folk tænkte sig lidt om før de
> > bevidstløst trykker på alt hvad der kan trykkes på og mere til.

> Selvfølgelig skal der jo være validering, så slipper man også får en
> smule spam :)

I hvert fald hvis det er en mailformular ;)

> Men jeg mener bare at valideringen først skal ske til sidst, altså når
> der er trykket "submit"

Det er jeg ikke enig i. Man kan IMHO ligeså godt gøre opmærksom på
fejlen så hurtigt som muligt.


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste