Avatar billede Slettet bruger
13. marts 2007 - 13:32 Der er 10 kommentarer og
1 løsning

Check tal og bliv i feltet

Hej.

Jeg har engang fået dette lille tips her:

<input type="text" name="deltager" onBlur="if(!this.value.match(/^[0-9]*$/gi))alert('Du kan kun indtaste tal (0-9)')" value="<?php echo $_SESSION['deltager']; ?>" size="50">

og det virker fint nok, men nogen kan ikke forstå det alligevel.

Jeg har lige haft det problem, at en bruger tastede minustegnet mellem to tal, og ignorerede advarslen, og så lod det stå og så blev det gemt.

Kan man ikke gøre sådan at det ikke er muligt at skrive minustegn ind, eller blanke feltet og den så bliver der ved fejl advarslen ?

Det ville være rigtig lækkert.
Avatar billede roenving Novice
13. marts 2007 - 13:38 #1
Kan der være decimaltegn i feltet ?-)

Uden, kan du bare fjerne det, når brugeren har fået advarslen:

<input type="text" name="deltager" onBlur="if(!this.value.match(/^[0-9]*$/gi))alert('Du kan kun indtaste tal (0-9)');this.value=this.value.replace(/[\D]/g,'');" value="<?php echo $_SESSION['deltager']; ?>" size="50">
Avatar billede Slettet bruger
13. marts 2007 - 13:44 #2
Den fjerner kun stregen :-)

Den skal slette tallene også. Jeg prøvede med 2-4 og så skrev den 24. Det er pladser man bestiller, så hvis man mener man kommer 2 til 4 så skriver de det med stregen.

Det bedste er at blanke feltet helt og blive stående i feltet indtil det er feset ind hvordan man gør :-)

Kan man det ?
Avatar billede roenving Novice
13. marts 2007 - 13:46 #3
Så således:

<input type="text" name="deltager" onBlur="if(!this.value.match(/^[0-9]*$/gi))alert('Du kan kun indtaste tal (0-9)');this.value='';return false;" value="<?php echo $_SESSION['deltager']; ?>" size="50">

-- men jeg garanterer ikke, at den altid opfører sig, som du forventer !-)
Avatar billede Slettet bruger
13. marts 2007 - 14:19 #4
Det ser ud til at fungere, men den bliver ikke i feltet - kan man ikke det ?
Avatar billede roenving Novice
13. marts 2007 - 14:23 #5
Så brug onchange i stdet:

<input type="text" name="deltager" onchange="if(!this.value.match(/^[0-9]*$/gi))alert('Du kan kun indtaste tal (0-9)');this.value='';return false;" value="<?php echo $_SESSION['deltager']; ?>" size="50">
Avatar billede Slettet bruger
13. marts 2007 - 14:28 #6
Svar roenving :-)

Det ser ud til at være ok. Så jeg prøver lige at lade nogen prøve det af .-)

TAK for hjælpen.
Avatar billede roenving Novice
13. marts 2007 - 14:36 #7
Velbekomme '-)
Avatar billede roenving Novice
13. marts 2007 - 14:56 #8
-- og tak for point ;~}
Avatar billede Slettet bruger
14. marts 2007 - 13:53 #9
Det var da en værre uups, den der.

Jeg var jo så dum at jeg kun testede på fejl, men kan kunne heller ikke skrive lovlige tal ind :-) Der blankede den også feltet. Så jeg måtte lave det tilbage igen.

Det var nok det du mente med at den ikke altid ville opføre sig dom forventet. Den virker jo fint med ulovlige indtastninger, men ikke med almindelige tal, der blanker den også, så der var ingen der kunne skrive noget i det felt :-)

Ole.
Avatar billede roenving Novice
14. marts 2007 - 14:04 #10
Så skal der lige to tuborger med:

<input type="text" name="deltager" onchange="if(!this.value.match(/^[0-9]*$/gi)){alert('Du kan kun indtaste tal (0-9)');this.value='';return false;}" value="<?php echo $_SESSION['deltager']; ?>" size="50">
Avatar billede Slettet bruger
14. marts 2007 - 14:15 #11
Tak, nu virker begge dele, ser det ud til :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester