Avatar billede fuglen Nybegynder
06. november 2003 - 11:22 Der er 10 kommentarer

Validering af tekstfelt

Jeg har et tekstfelt hvor brugeren kun skal kunne taste tal (og komma) ind. Hvis brugeren prøver at poste formen, skal en alertbox komme med en advarsel.

er der nogen der ligger inde med det script ?
Avatar billede roenving Novice
06. november 2003 - 12:47 #1
<script type="text/javascript">
function validNum(f){
reg = /[\d\,]?/g;
if(!f.textFelt.match(reg)){
alert('Kun tal og komma i feltet');
f.textFelt.focus();
return false
}
return true;
}
</script>


<form ... onsubmit="return validNum(this)">
Avatar billede fuglen Nybegynder
06. november 2003 - 13:15 #2
<script type="text/javascript">
function validNum(f){
reg = /[\d\,]?/g;
if(!f.talfelt.match(reg)){
alert('Kun tal og komma i feltet');
f.talfelt.focus();
return false
}
return true;
}
</script>
<form name="f" method="POST" action="save.asp" onsubmit="return validNum(this)">


Det virker ikke for mig....
Avatar billede skovenborg Nybegynder
06. november 2003 - 14:52 #3
efter roenvings forslag skal du have et tekstfelt ved navn talfelt - har du det???
Avatar billede skovenborg Nybegynder
06. november 2003 - 14:59 #4
og så er det vel også mere sådan her:
<script type="text/javascript">
function validNum(f){
reg = /[\d\\,]?/g;
if(!f.talfelt.value.search(reg)){
alert('Kun tal og komma i feltet');
f.talfelt.focus();
return false
}
return true;
}
</script>
Avatar billede skovenborg Nybegynder
06. november 2003 - 15:00 #5
nej undskyld never mind med det sidste foreslag ;-)
Avatar billede skovenborg Nybegynder
06. november 2003 - 15:04 #6
det var det her jeg mente:
<script type="text/javascript">
function validNum(f){
reg = /[^\d\,]/g;
if(f.talfelt.value.match(reg)){
alert('Kun tal og komma i feltet');
f.talfelt.focus();
return false
}
else return true;
}
</script>
Avatar billede roenving Novice
06. november 2003 - 17:28 #7
Klart en voldsom småfejl ikke at få .value med, men det er vel en indtastning af et eventuelt decimal-tal, du vil understøtte, så:

<script type="text/javascript">
function validNum(f){
reg = /\d+(,\d+)?/g;
if(!f.textFelt.value.match(reg)){
alert('Kun tal og komma i feltet');
f.textFelt.focus();
return false
}
return true;
}
</script>


<form ... onsubmit="return validNum(this)">
<input type="text" name="textFelt">
<input type="submit">
</form>

-- som vil godkende tal med mindst eet ciffer og så evt. et komma med mindst et ciffer mere ...

ie:

7
387969
3,7
3,765865
8769,565

er gode nok, men:

3,
76587658,
,7889

vil give fejl !-)

-- og hvis det er en valuta-indtastning, som kun må acceptere to cifre efter kommaet, skal det _sidste_ plus i reg erstattes af {1,2}:

reg = /\d+(,\d{1,2})?/g;
Avatar billede roenving Novice
06. november 2003 - 17:29 #8
Måske er det egentlig rigtigere med:

reg = /^\d+(,\d{1,2})?$/;
Avatar billede fuglen Nybegynder
07. november 2003 - 16:18 #9
Jamen roenving... du har jo virkeligt kælet for detaljerne ;-)
Hvis du smider et svar, smider jeg lidt point efter dig.

Men også tak til skovenborg!
Avatar billede roenving Novice
10. november 2003 - 14:03 #10
Velbekomme '-)
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