Avatar billede vraa Nybegynder
16. maj 2005 - 19:04 Der er 9 kommentarer og
1 løsning

Kun bogstaver og tal i teksfelt

Hvordan validerer jeg på at brugeren kun indtaster følgende i et tekstfelt:

a-z
A-Z
0-9
-

Det er vigtigt at tegnet - også kan indtastes.
Avatar billede roenving Novice
16. maj 2005 - 19:09 #1
-- og du vil ikke tillade _ (underscore ?-)

-- så f.eks.

if(!f.tekstfelt.value.match(/^[a-z\d-]+$/i)){
  alert("Du må kun bruge a-z og tal i feltet !-)");
  f.tekstfelt.focus();
  return false;
}
Avatar billede vraa Nybegynder
16. maj 2005 - 19:46 #2
Men hvordan annullerer man indtastningen? Bruger skal ikke kunne indtaste noget forkert, derfor vil jeg gerne at indtastningen bliver annulleret.
Avatar billede roenving Novice
16. maj 2005 - 19:53 #3
I ovenstående eksempel ved at kalde en funktion onsubmit på formen, f.eks.

<form action="..." method="post" onsubmit="return valider(this);">
<input name="tekstfelt">
<input type="submit">
</form>

<script type="text/javascript">
function valider(f){
  if(!f.tekstfelt.value.match(/^[a-z\d-]+$/i)){
    alert("Du må kun bruge a-z og tal i feltet !-)");
    f.tekstfelt.value="";//F.eks. kan du jo tømme feltet, hvis du ikke kan lide indholdet !-)
    f.tekstfelt.focus();
    return false;
  }
  return true;
}
</script>

-- så vil kalorius ikke kunne sendes uden at indholdet dur
Avatar billede vraa Nybegynder
16. maj 2005 - 20:03 #4
Det ser godt ud indtil videre men...

Er det ikke muligt at lave noget med onkeyup og fjerne det forkert indtastede karakter? Vil gerne hvis valideringen sker under indtastningen.
Avatar billede roenving Novice
16. maj 2005 - 20:07 #5
Tjah, joeh, det kan man godt, men hvordan reagerer brugeren, hvis hans tastatur lige pludselig ikke virker ?-)

-- alt andet lige ville jeg selv bruge den med at reagere onsubmit !-)
Avatar billede skovenborg Nybegynder
16. maj 2005 - 20:18 #6
Der kunne man evt. bare farve teksten rød hvis brugeren taster et forkert tegn ind. Dette hindrer ikke brugeren direkte at taste noget forkert, men så er han/hun advaret. Og desuden vil roenvings valider-funktion ved submit af formen alligevel hindre brugeren i at skrive forkert.

Et lille eksempel:
<form action="..." method="post" onsubmit="return valider(this);">
<input name="tekstfelt" onkeyup="this.style.color = (this.value.match(/^[a-z\d-]+$/i)) ? 'black' : 'red';">
<input type="submit">
</form>
Avatar billede vraa Nybegynder
16. maj 2005 - 20:28 #7
Det kan du for sin vis have ret i roenving. Jeg benytter onsubmit og laver derefter en focus og select på tekstboxen så det indikerer hvor problemet er. Læg du lige et svar :-)
Avatar billede roenving Novice
16. maj 2005 - 20:30 #8
Velbekomme '-)
Avatar billede vraa Nybegynder
17. maj 2005 - 08:11 #9
Værsgo. En sidste ting. Hvis nu æ-å og Æ-Å også må benyttes hvordan skal if-sætningen så se ud?
Avatar billede roenving Novice
17. maj 2005 - 08:59 #10
-- så skal du bruge:

.match(/^[a-zæøå\d-]+$/i))

-- og tak for point ;~}
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