04. marts 2005 - 23:41Der 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++ } } }
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.)?
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++ } } }
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 :-)
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.