Avatar billede Jman Praktikant
05. februar 2004 - 11:20 Der er 10 kommentarer og
1 løsning

Check form - kan ikke huske max. tegn kontrollen

if (document.form.postnr.value == "" ){
    alert( "Skriv postnr" );
    document.form.postnr.focus();
    return false;
    }


Hvordan er det lige man laver en tilsvarende, der kontrollerer for max 4 tal...
Avatar billede Jman Praktikant
05. februar 2004 - 11:24 #1
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;
    }
Avatar billede 2c Nybegynder
05. februar 2004 - 11:24 #2
Du kan eventuelt sætte en max længde på dit textarea.

<input name="postnr" type="text" id="postnr" maxlength="4">
Avatar billede roenving Novice
05. februar 2004 - 11:26 #3
Må der være færre end 4 ?-)

Hvis det er præcis 4 er det jo nemmest med en regexp:

if (!document.form.postnr.value.match(/^\d{4}$/)){
    alert( "Skriv postnr" );
    document.form.postnr.focus();
    return false;
    }
Avatar billede Jman Praktikant
05. februar 2004 - 11:28 #4
jeps, det ser rigtigt ud.. kan du egentlig give en kort forklaring på tengene i regexp, som du benytter her ?
Avatar billede roenving Novice
05. februar 2004 - 11:35 #5
// er streng-afgrænsere på en reg-exp (som gåseøjne eller apostroffer er det på tekst !-)

^ betyder helt fra starten, $ betyder helt til slutningen

\d betyder tal

{4} betyder at der skal være præcis fire af det foregående tegn (her tal !-)

-- og velbekomme '-)
Avatar billede Jman Praktikant
05. februar 2004 - 11:38 #6
LÆKKERT!
1000 Tak for det... Kan du fixe mit tillægsspørgsmålet, så dobler jeg points c",)
Avatar billede roenving Novice
05. februar 2004 - 11:49 #7
At den ikke må være for lang ?-)

-- er der krav til lovlige tegn ?-)

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;
}
Avatar billede Jman Praktikant
05. februar 2004 - 11:57 #8
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.
Avatar billede Jman Praktikant
05. februar 2004 - 11:59 #9
Avatar billede Jman Praktikant
05. februar 2004 - 14:39 #10
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;
    }

    if (InsertForm.bynavn.value == "" ){
    alert( "Angiv venligst by" );
    InsertForm.bynavn.focus();
    return false;
    }

    if(!InsertForm.TlfPrivat.value.match(/^[0-9]/)){
    alert("Feltet tlf.nr må kun indeholde tal");
    InsertForm.TlfPrivat.focus();
    return false;
    }

    if(!InsertForm.TlfMobil.value.match(/^[0-9]/)){
    alert("Feltet mobilnr må kun indeholde tal");
    InsertForm.TlfPrivat.focus();
    return false;
    }

    // ** End checkform **
  return true;
}
</script>

Er du sød at kigge om jeg skulle have lave en fejl..
Avatar billede roenving Novice
05. februar 2004 - 14:53 #11
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:

<form action="familien.asp?mode=insert" method="post" name="InsertForm" onsubmit="return checkform(this);" enctype="multipart/form-data">
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