Avatar billede canedo Nybegynder
04. marts 2005 - 23:41 Der er 2 kommentarer og
1 løsning

validering på form

Jeg anvender dette script for at finde ud om folk har indtastet i begge formularfelter:

<script type="text/javascript">
function check(){

elm = document.forms.frm.elements;
str= "Følgende felter mangler at blive udfyldt\n\n";
err = 0;

for (i=0;i<elm.length;i++){
if (elm[i].value.length==0){
  if(elm[i].name.charAt(elm[i].name.length-1)!="X"){
  str+=elm[i].name+" skal udfyldes\n";
  err++
  }
}
}

if(err>0){
  alert(str);
  return false
}else
  return true;
}
</script>


Der kommer fint nok en prompt op, men ikke når folk blot indtaster mellemrum. Kan jeg afhjælpe det problem blot med javascript, eller bliver jeg nødt til at ty til ASP (f.eks.)?
Avatar billede skovenborg Nybegynder
05. marts 2005 - 00:45 #1
Ja, det er jo en af de små begrænsningerne ved den slags scripts. Det er også derfor jeg normalt bruger følgende metode:
function check(){

elm = document.forms.frm.elements;
str= "Følgende felter mangler at blive udfyldt\n\n";
err = 0;

for (i=0;i<elm.length;i++){
e = elm[i];
if (!e.value.match(/\S/)){
  if(e.name.charAt(elm[i].name.length-1)!="X"){
  str+=e.name+" skal udfyldes\n";
  err++
  }
}
}

if(err>0){
  alert(str);
  return false
}else
  return true;
}

Med en lille regular expression kan man teste om der overhovedet er indtastet andet end "whitespace", som i disse sammenhænge er repræsenteret i tegnet \s. \S menes her det modsatte af \s, altså alle tegn der ikke er "whitespaces" (whitespace er fx mellemrum, linieskift, tabularindrykning og den slags usynlige tegn).
if (!e.value.match(/\S/)){ tester altså om der findes et tegn som ikke er et whitespace, og hvis ikke melder den fejl - det burde kunne gøre det :-)
Avatar billede canedo Nybegynder
05. marts 2005 - 18:47 #2
læg et svar :o) det virker jo perfekt.
Avatar billede skovenborg Nybegynder
05. marts 2005 - 19:08 #3
es freut mich (tror jeg nok det hedder) :-)
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