[ Er ny i javascript ] Jep, det er jeg også (startede med træning i marts).
[ og metoden du bruger syntes jeg er lidt svært at gennemskue.. ] Hvis man skal have en forklaring er det bare at spørge ...
<input type="text" name="fornavn" onkeyup="val(this);" onchange="val(this);">
^ - hver gang knappen ryger op eller værdien af input feltet ændres køres valideringen
if(tn.value.match(/[\W_]/)){tn.value=tn.value.replace(/[\W_]/g,"");alert(ugyldtegnalert+lengthalert);return true;}
^ - hvis input feltet indeholder tegn der ikke er i 0-9a-zA-Z eller hvis tegnet er _ køres replace funktionen der sletter tegnene og giver brugeren en alert ...
else if(tn.value.length>16){tn.value=tn.value.substr(0,16);alert(lengthalert);return true;}
^ - denne her checker tegn længden (hvis den er over kommer der en alert og længden sænkes ... else gør at funktionen kun køres hvis den anden fejl ikke opstod
else return false;
^ - hvis der ikke kom nogle fejl returnerer den false ellers true.
<b onclick="validering();">afsend</b>
^ - ved submit køres validerings funktionen
function validering() {
f=document.forms[0];
- en genvej til formularen
error=false;
- error sættes til false ... det lyder dumt at arbejde med error true og så afsende hvis error er true ... derfor modsat falsk / sand fortegn.
error=val(f.fornavn);
- error tildeles værdien funktionen her returnerer ... bemærk den retunerede false hvis der ikke var fejl - så error forbliver false hvis alt er ok
if((!error)&&(f.fornavn.value.length<4)){error=true;alert(lengthalert);f.fornavn.focus();}
- hvis længden er under 4 returneres en fejl (validering på over er i den anden funktion
if(!error)document.forms[0].submit();
- hvis error er false - altså hvis der ingen fejl var så submittes
}
[ Derfor ville jeg gerne det kunne smides ind i den metode jeg bruger, ]
Ok, men synes det virkede mere overskueligt hver for sig... her:
<!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\n";
lengthalert="Brugernavn skal være mellem 4 og 16 tegn\ngyldige tegn er: a-z A-Z 0-9";
function validering(t) {
f=document.forms[0];
error=false;
tn=f.fornavn;
if(tn.value.match(/[\W_]/)){tn.value=tn.value.replace(/[\W_]/g,"");alert(ugyldtegnalert+lengthalert);error=true;}
else if(tn.value.length>16){tn.value=tn.value.substr(0,16);alert(lengthalert);error=true;}
if((!error)&&(f.fornavn.value.length<4)&&(t!=1)){error=true;alert(lengthalert);f.fornavn.focus();}
if((!error)&&(!t))document.forms[0].submit();
}
</script>
</head><body>
<form method="get" action="test.html">
<input type="text" name="fornavn" onkeyup="validering(1);" onchange="validering(1);">
</form>
<br><br><br><br><br>
<b onclick="validering();">afsend</b>
</body></html>