og hvis jeg lige må tillægge et spørgsmål: Kan man lave en tilsvarende for adgangskodekontrol a'la if (document.form.adgangskode.value <> document.form.adgangskodeValider.value ){ alert( "Din adgangskode var ikke ens i begge felter" ); document.form.adgangskode.focus(); return false; }
Her er en med tilladelse til at bruge 6 bostaver, tal og _
if (document.form.adgangskode.value <> document.form.adgangskodeValider.value || !document.form.adgangskode.value.match(/^\w{6}$/i)){ alert( "Din adgangskode var ikke ens i begge felter" ); document.form.adgangskode.focus(); return false; }
\w betyder så bogstaver, tal og _
i betyder case-Insensitive, dvs. både små og store bogstaver accepteres !-)
Iøvrigt er det ikke hensigtsmæssigt at bruge form som navn på en form, da alle form-elementer i forvejden er udstyret med en property, som hedder form ...
-- og du kalder den vel fra form-tagget, som du så kan lave sådan:
<form ... onsubmit="return valider(this);">
-- og funktionen:
function valider(f){ if (f.adgangskode.value <> f.adgangskodeValider.value || !f.adgangskode.value.match(/^\w{6}$/i)){ alert( "Din adgangskode var ikke ens i begge felter" ); f.adgangskode.focus(); return false; } if (!f.postnr.value.match(/^\d{4}$/)){ alert( "Skriv postnr" ); f.postnr.focus(); return false; } return true; }
jeg bøjer mig i støvet ... er først nu begyndt at interessere mig for at hjælpe brugeren igennem formularer og jeg ved godt det er for dårligt...men aldrig for sent
Jeg kan åbenbart ikke forhøje point p.t. men opretter lige et nyt sp.
hmm - nu har jeg tilrettet min formcheck (tror jeg), men nu springes den helt over.... min form: <FORM ACTION="familien.asp?mode=insert" METHOD="post" NAME="InsertForm" OnSubmit="return checkform(this);" ENCTYPE="multipart/form-data">
min checkform <SCRIPT LANGUAGE="JavaScript" type="text/javascript"> function checkform(InsertForm) { if (InsertForm.navn.value == "" ){ alert( "Du skal skrive dit navn, min ven" ); InsertForm.navn.focus(); return false; }
if (InsertForm.brugernavn.value == "" ){ alert( "Du skal angive et brugernavn, for at kunne logge ind igen på et andet tidspunkt" ); InsertForm.brugernavn.focus(); return false; }
if (InsertForm.adgangskode.value == "" ){ alert( "Du skal angive en adgangskode, for at kunne logge ind igen på et andet tidspunkt" ); InsertForm.adgangskode.focus(); return false; }
if (InsertForm.adresse.value == "" ){ alert( "Angiv venligst din adresse" ); InsertForm.adresse.focus(); return false; }
if (InsertForm.postnr.value == "" ){ alert( "Angiv venligst postnr" ); InsertForm.postnr.focus(); return false; } if (!InsertForm.postnr.value.match(/^\d{4}$/)){ alert( "Postnr skal indeholde 4 tal" ); InsertForm.postnr.focus(); return false; }
Bortset fra, at der er en teoretisk mulighed for uhensigtsmæssigheder ved at bruge samme navn i formen som på variablen i scriptet, kan jeg ikke se nogen fejl ...
(Hvis du bruger IE, vil en henvisning til et id på et element kunne bruges ligesom InsertForm !-)
-- og så kan du vel ligesågodt begynde at forberede dig på de nye tider, så koden langsomt blive xhtml-kompatibel:
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.