Avatar billede maron Nybegynder
23. september 2006 - 09:10 Der er 8 kommentarer og
1 løsning

Validering af input

Hvordan kan man validere forskellige tegn med java-script.
Så f.eks tegn som: "-&%#=? ikke godkendes i et formularfelt.
Avatar billede mclemens Nybegynder
24. september 2006 - 02:29 #1
Noget i denne stil:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
if(window.addEventListener)window.addEventListener("load", wload, false);
else if(window.attachEvent)window.attachEvent("onload", wload);

function wload(){
  inps=document.getElementsByTagName("input");
  for(i=0,i2=inps.length;i<i2;i++){
    if(inps[i].getAttribute("rel")=="nospecchars")nospecscr(inps[i]);
  }
}

function nospecscr(t){
  if(t.addEventListener){
    t.addEventListener("keyup", function(){remspec(t);}, false);
    t.addEventListener("change", function(){remspec(t);}, false);
  }
  else if(t.attachEvent){
    t.attachEvent("onkeyup", function(){remspec(t);});
    t.attachEvent("onchange", function(){remspec(t);});
  }
}

function remspec(t){
  var illechar=["-","&","%","#","=","?"];
  var illeres=[];
  var vals=t.getAttribute("value");
  for(i=0,i2=illechar.length;i<i2;i++){
    if(vals.indexOf(illechar[i])!=-1){
      illeres[illeres.length]=illechar[i];
      var reg=new RegExp(illechar[i],"g");
      t.setAttribute("value",t.getAttribute("value").replace(reg,""));
      vals=t.getAttribute("value");
    }
  }
  if(illeres.length!=0)alert("Der var ugyldige tegn i din indtastning.\nFølgende tegn er ikke gyldige: "+illechar.join(' ')+"\nDisse tegn blev fundet: "+illeres.join(' ')+"\nDet ugyldige tegn er nu fjernet");
}

</script>

</head><body>

<input type="text" name="test" value="testtekst  valideres" rel="nospecchars">
<input type="text" name="test" value="testtekst">
<input type="text" name="test" value="testtekst  valideres" rel="nospecchars">
<input type="text" name="test" value="testtekst  valideres" rel="nospecchars">
<input type="text" name="test" value="testtekst">

</body></html>
Avatar billede maron Nybegynder
24. september 2006 - 10:25 #2
Nej det var nu mere ligesom hvis man skriver sin email i et felt f.eks uden @
Så kommer script-meddelsen ugyldig email.

Lidt på samme måde havde jeg tænkt, at kun kun tal og bogstaver skulle kunne anvendes, alle andre tegn skal være ugyldige.
Avatar billede mclemens Nybegynder
24. september 2006 - 10:50 #3
Noget i denne stil?


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

ugyldtegnalert="Der var ugyldige tegn i feltet disse er fjernet.\nGyldige tegn er: a-z A-Z 0-9";

function validering(tn)  {

  if(tn.value.match(/[\W_]/)){tn.value=tn.value.replace(/[\W_]/g,"");alert(ugyldtegnalert);}

}

</script>

</head><body>

<input type="text" name="fornavn" onkeyup="validering(this);" onchange="validering(this);">

</body></html>
Avatar billede mclemens Nybegynder
24. september 2006 - 11:00 #4
Eller måske med æøå også ...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

ugyldtegnalert="Der var ugyldige tegn i feltet disse er fjernet.\nGyldige tegn er: a-z A-Z 0-9 samt æøå";

function validering(tn)  {

  if(tn.value.match(/[^\w|^æ|^ø|^å|^Æ|^Ø|^Å|^ ]/)){tn.value=tn.value.replace(/[^\w|^æ|^ø|^å|^Æ|^Ø|^Å|^ ]/g,"");alert(ugyldtegnalert);}

}

</script>

</head><body>

<input type="text" name="fornavn" onkeyup="validering(this);" onchange="validering(this);">

</body></html>
Avatar billede maron Nybegynder
24. september 2006 - 14:12 #5
Ja præcis.:) tester og vender tilbage...
Avatar billede maron Nybegynder
29. september 2006 - 21:07 #6
Kan man gøre således at tegnet "-" og æøå ikke fjernes?
Avatar billede mclemens Nybegynder
29. september 2006 - 21:35 #7
En udvidet udgave af
11:00:17 ( ^\-| tilføjet ... )


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

ugyldtegnalert="Der var ugyldige tegn i feltet disse er fjernet.\nGyldige tegn er: a-z A-Z 0-9 samt æøå og -";

function validering(tn)  {

  if(tn.value.match(/[^\w|^\-|^æ|^ø|^å|^Æ|^Ø|^Å|^ ]/)){tn.value=tn.value.replace(/[^\w|^\-|^æ|^ø|^å|^Æ|^Ø|^Å|^ ]/g,"");alert(ugyldtegnalert);}

}

</script>

</head><body>

<input type="text" name="fornavn" onkeyup="validering(this);" onchange="validering(this);">

</body></html>
Avatar billede maron Nybegynder
29. september 2006 - 21:48 #8
Meget fint :)
Avatar billede mclemens Nybegynder
29. september 2006 - 22:25 #9
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

IT-JOB