Avatar billede reno16 Nybegynder
23. april 2002 - 20:45 Der er 12 kommentarer og
1 løsning

Et Javascript som tjekker om en formular er udfyldt!

hvordan laver jeg et javascript, som går ind og tjekker om man har udfyldt alle felterne i en formular?
Avatar billede kimiwan Nybegynder
23. april 2002 - 20:53 #1
skal den bare tjekke alle dine text felter?
Avatar billede reno16 Nybegynder
23. april 2002 - 20:55 #2
jeps, men hvis det var sådan at den ikke behøvede at tjekke nogle felter ville også være cool!
Avatar billede medions Nybegynder
23. april 2002 - 20:59 #3
Here you go..

function validerInfoblad(){
   
    if (document.forms[0].login.value == "")
            {alert('Du skal vælge et login!'); return false}
           
    if (document.forms[0].pw1.value.length > 0)
    {
        if (document.forms[0].pw2.value.length > 0)
        {
            if (document.forms[0].pw1.value != document.modify.pw2.value)
                {alert('De to indtastede passwords stemmer ikke overens!\n\nPrøv igen!'); return false}
        }
        else
        {alert('De to indtastede passwords stemmer ikke overens!\n\nPrøv igen!'); return false}
    }
        else if (document.forms[0].pw2.value.length > 0)
        {alert('De to indtastede passwords stemmer ikke overens!\n\nPrøv igen!'); return false}
   
   
        if (document.forms[0].navn.value == "")
        {alert('Du skal skrive dit navn!'); return false}
   

        if (document.forms[0].email.value.length > 0)
        {   
        var index = document.forms[0].email.value.indexOf("@")
        if (index == -1)
        {alert('Du har indtastet en ugyldig e-mail adresse!'); return false}
        else if (index != document.forms[0].email.value.lastIndexOf("@"))
        {alert('En e-mail adresse må kun indeholde ét @!'); return false}       
        else if (document.forms[0].email.value.slice(0,index).length < 1)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | før @'); return false}
       
        var lastpart = document.forms[0].email.value.slice(index +1)
        if (lastpart.length < 4)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | efter @' + lastpart); return false}
        var index2 = lastpart.lastIndexOf(".")
        if (index2 == -1)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | intet .!'); return false}
        else if (lastpart.slice(0,index2).length < 1)
        {alert('Du har indtastet en invalid e-mail adresse!'); return false}
        else if (lastpart.slice(index2 + 1).length != 2 && lastpart.slice(index2 + 1).length != 3)
        {alert('Du har indtastet en e-mail adresse med forkert domæne-angivelse!' + lastpart.slice(index2 + 1)); return false}
    }
    else if (document.forms[0].email.value == "")
        {alert('Du skal taste din e-mail adresse!'); return false}
   
   
    if (document.forms[0].taadr.value.length > 175)
    {alert('Adressen er for lang... Den må højst indeholde 175 tegn!'); return false}   
   
    else if (document.forms[0].tabesk.value.length > 500)
    {alert('Adressen er for lang... den må højst indeholde 500 tegn!'); return false}
}

function validerBesked(){
   
        if (document.forms[0].navn.value == "")
        {alert('Du mangler at skrive dit navn!'); return false}
   

        if (document.forms[0].email.value.length > 0)
        {   
        var index = document.forms[0].email.value.indexOf("@")
        if (index == -1)
        {alert('Du har indtastet en ugyldig e-mail adresse!'); return false}
        else if (index != document.forms[0].email.value.lastIndexOf("@"))
        {alert('En e-mail adresse må kun indeholde ét @'); return false}       
        else if (document.forms[0].email.value.slice(0,index).length < 1)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | før @'); return false}
       
        var lastpart = document.forms[0].email.value.slice(index +1)
        if (lastpart.length < 4)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | efter @' + lastpart); return false}
        var index2 = lastpart.lastIndexOf(".")
        if (index2 == -1)
        {alert('Du har indtastet en e-mail adresse, som ikke er valid | intet .!'); return false}
        else if (lastpart.slice(0,index2).length < 1)
        {alert('Du har indtastet en invalid e-mail adresse!'); return false}
        else if (lastpart.slice(index2 + 1).length != 2 && lastpart.slice(index2 + 1).length != 3)
        {alert('Du har indtastet en e-mail adresse med forkert domæne-angivelse!' + lastpart.slice(index2 + 1)); return false}
    }
    else if (document.forms[0].email.value == "")
        {alert('Du mangler at indtaste din e-mail adresse!'); return false}
   
    if (document.forms[0].titel.value == "")
    {alert('Beskeden mangler titel!'); return false}
       
    if (document.forms[0].tabesk.value == "")
    {alert('Beskeden er forkort!'); return false}

}

Held og lykke med det...!
//>Rune
Avatar billede medions Nybegynder
23. april 2002 - 21:04 #4
Hvis du er til ASP, har jeg en kanon valideringsform til dig her:

<%
Dim V_ValiderEmail, V_Snabler, V_UgyldigeDomaener, V_Domaene, V_GyldigeEndelser, V_GyldigEndelse, V_Endelse, V_Ekskluder, V_i, V_Status

Function Valider(V_ValiderEmail)

    Valider            = True
    V_ValiderEmail    = LCase(V_ValiderEmail)
   
    ' (1) Check laengde '-----------------------------------------------------------------------
   
    If Len(V_ValiderEmail) < 5 Then
        Valider    = False
        V_Status    = "E-mail adressen er for kort."
        Exit Function
    End If

    ' (2) Skal indeholde @ '--------------------------------------------------------------------
   
    If InStr(V_ValiderEmail,"@") = 0 Then
        Valider    = False
        V_Status    = "Der mangler et ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (3) Undgaa "@." og ".@" '-----------------------------------------------------------------
   
    If ((InStr(V_ValiderEmail,"@.") <> 0) OR (InStr(V_ValiderEmail,".@") <> 0)) Then
        Valider    = False
        V_Status    = "Der må ikke være et punktum lige op af et ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (4) Check om der er noget foran @ '-------------------------------------------------------
   
    If Len(Left(V_ValiderEmail,InStr(V_ValiderEmail,"@") - 1)) = 0 Then
        Valider    = False
        V_Status    = "Der mangler noget foran ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (5) Minimum 1 "." '-----------------------------------------------------------------------

    If InStr(V_ValiderEmail,".") = 0 Then
        Valider    = False
        V_Status    = "En e-mail adresse indeholder mindst eet punktum."
        Exit Function
    End If

    ' (6) Max 3 tegn efter sidste "." '---------------------------------------------------------

    If (Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".") > 3) Then
        Valider    = False
        V_Status    = "Der er for mange tegn efter sidste punktum i e-mail adressen."
        Exit Function
    End If

    ' (7) Undgaa ".." '-------------------------------------------------------------------------

    If InStr(V_ValiderEmail,"..") <> 0 Then
        Valider    = False
        V_Status    = "Der mŒ ikke være to punktummer lige op af hinanden i e-mail adressen."
        Exit Function
    End If

    ' (8) Min 2 tegn efter sidste "." '---------------------------------------------------------

    If (Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".") < 2) Then
        Valider    = False
        V_Status    = "Der skal være mindst to tegn efter sidste punktum i e-mail adressen."
        Exit Function
    End If

    ' (9) Ingen "_" efter "@" '-----------------------------------------------------------------

    If ((InStr(V_ValiderEmail,"_") <> 0) AND (InStrRev(V_ValiderEmail,"_") > InStrRev(V_ValiderEmail,"@"))) Then
        Valider    = False
        V_Status    = "Der må ikke være en underscore (_) efter ""@""."
        Exit Function
    End If

    ' (10) Tjek for flere "@" '-----------------------------------------------------------------

    V_Snabler = 0

    For V_i = 1 TO Len(V_ValiderEmail)
        If Mid(V_ValiderEmail,V_i,1) = "@" Then
            V_Snabler = V_Snabler + 1
        End If
    Next

    If V_Snabler > 1 Then
        Valider    = False
        V_Status    = "E-mail adressen indeholder for mange ""@""."
        Exit Function
    End If

    ' (11) Check V_Domaene ud fra array '-------------------------------------------------------

    V_UgyldigeDomaener    = Array("hotmai.com","yahho.dk","hotmaile.com","mail1stofanet.dk","ofri.dk","post1.dk","post2.dk","post3.dk","post4.dk","post5.dk","post6.dk","post7.dk","post8.dk","fc.skolekom.dk","post9.dk","hommail.com","jupiipost.dk","forom.dk","furom.dk","frorum.dk","mail.forum.dk","mailforum.dk","forum.mail.dk","sol.ak","guld.dk","hormail.com","wanacoo.dk","sol.mail.dk","mail.tel.dk")
    V_Domaene                = Right(V_ValiderEmail,(Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,"@")))

    For V_i = 0 TO UBound(V_UgyldigeDomaener)
        If V_Domaene = V_UgyldigeDomaener(V_i) Then
            Valider    = False
            V_Status    = "E-mail adressens domæne er ugyldigt."
            Exit Function
        End If
    Next

    ' (12) Tjek om TLD'en er korrekt '----------------------------------------------------------

    V_GyldigEndelse    = False
    V_GyldigeEndelser    = Array("dk","com","edu","gov","int","mil","net","org","af","al","dz","as","ad","ao","ai","aq","ag","ar","am","aw","ac","au","at","az","bs","bh","bd","bb","by","be","bz","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","ky","cf","td","cs","cl","cn","cx","cc","co","km","cg","ck","cr","ci","hr","cu","cy","cz","dj","dm","do","tp","ec","eg","sv","gq","er","ee","et","fk","fo","fj","fi","fr","gf","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gd","gp","gu","gt","gg","gn","gw","gy","ht","hm","va","hn","hk","hu","is","in","id","ir","iq","ie","im","il","it","jm","jp","je","jo","kz","ke","ki","kp","kr","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mk","mg","mw","my","mv","ml","mt","mh","mq","mr","mu","yt","mx","fm","md","mc","mn","ms","ma","mz","mm","na","nr","np","nl","an","nc","nz","ni","ne","ng","nu","nf","mp","no","om","pk","pw","ps","pa","pg","py","pe","ph","pn","pl","pt","pr","qa","re","ro","ru","rw","kn","lc","vc","ws","sm","st","sa","sn","sc","sl","sg","sk","si","sb","so","za","gs","es","lk","sh","pm","sd","sr","sj","sz","se","ch","sy","tw","tj","tz","th","tg","tk","to","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","uk","us","um","uy","su","uz","vu","ve","vn","vg","vi","wf","eh","ye","yu","cd","zm","zr","zw")
    V_Endelse            = Right(V_ValiderEmail,(Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".")))

    For V_i = 0 TO UBound(V_GyldigeEndelser)
        If V_Endelse = V_GyldigeEndelser(V_i) Then
            V_GyldigEndelse = True
            Exit For
        End If
    Next
   
    If NOT V_GyldigEndelse Then
        Valider    = False
        V_Status    = "Domæne endelsen (f.eks. "".dk"" el. "".com"") er ikke korrekt."
        Exit Function
    End If

    ' (13) Check hver enkelt tegn '-------------------------------------------------------------

    For V_i = 1 TO Len(V_ValiderEmail)
        If NOT IsNumeric(Mid(V_ValiderEmail,V_i,1)) AND (LCase(Mid(V_ValiderEmail,V_i,1)) < "a" OR LCase(Mid(V_ValiderEmail,V_i,1)) > "z") AND Mid(V_ValiderEmail,V_i,1) <> "_" AND Mid(V_ValiderEmail,V_i,1) <> "." AND Mid(V_ValiderEmail,V_i,1) <> "@" AND Mid(V_ValiderEmail,V_i,1) <> "-" Then
            Valider    = False
            V_Status    = "E-mail adressen indeholder et eller flere ugyldige tegn."
            Exit Function
        End If
    Next

    ' (14) Adresser der skal ekskluderes (grundet SPAM el. lign.) '-----------------------------

    V_Ekskluder    = Array("rune@medions.dk", "daniel@server02.dk", "anders@and.dk", "test@test.dk", "test@test.com")

    For V_i = 0 TO UBound(V_Ekskluder)
        If V_ValiderEmail = V_Ekskluder(V_i) Then
            Valider    = False
            V_Status    = "Der kan ikke sendes til den valgte adresse da den er ekskluderet pga. misbrug."
            Exit Function
        End If
    Next

End Function
%>

//>Rune
Avatar billede medions Nybegynder
23. april 2002 - 21:08 #5
Men ellers smæk JavaScript koden ind i en fil der hedder valider.js og inkluder den der hvor der skal valideres således:
<script language="JavaScript" src="valider.js"></script>

og i din formtag
<form action="kontakt.htm" onSubmit="return validerInfoblad()">

//>Rune
Avatar billede reno16 Nybegynder
23. april 2002 - 21:20 #6
det var ikke sådan at jeg kunne få den i lidt forenklet version?
Avatar billede medions Nybegynder
23. april 2002 - 21:25 #7
well, hvis du vil ha' en total validering, så er det én af de to versioner du skal bruge!

//>Rune
Avatar billede medions Nybegynder
23. april 2002 - 21:27 #8
Men okay.. her har du en der er meget mere enkelt...


I valider.js skal der stå:

    function validerIndex()
    {
        if (document.forms[0].navn.value == "")
        {
          alert('Du har ikke indtaster noget navn!'); return false
        }
   
        if (document.forms[0].email.value == "")
        {
          alert('Du har ikke indtastet nogen email adresse!'); return false
        }
       
        if (document.forms[0].index.value == "")
        {
          alert('Du har ikke indtastet nogen besked!'); return false
        }
       
        var index = document.forms[0].email.value.indexOf("@")
       
        if (index == -1)
        {
          alert('Du har ikke indtastet en gyldig email adresse!'); return false
        }
       
        if (index != document.forms[0].email.value.lastIndexOf("@"))
        {
          alert('En e-mail adresse må kun indeholde ét @!'); return false
        }   
    }
   


og i dit dokument, hvor du skal valider skal du skrive:

<script language="JavaScript" src="valider.js"></script>
<form name="kontakt" action="kontakt.htm" onSubmit="return validerIndex()">
                <table align="center" style="font-family:verdana;font-size: 8pt;">
                    <tr>
                        <td>Navn </td>
                        <td align="right">
                          <input type="text" name="navn" size="25" style="font-family: Arial; font-size: 9pt; border-left: medium none; border-right: medium none; border-top: medium none; background: rgb(235,231,222); border-bottom: 1px dashed rgb(128,128,128)" tabindex="1" />
                        </td>
                    </tr>
                    <tr>
                        <td>Email </td>
                        <td align="right">
                        <input type="text" name="email" size="25" style="font-family: Arial; font-size: 9pt; border-left: medium none; border-right: medium none; border-top: medium none; background: rgb(235,231,222); border-bottom: 1px dashed rgb(000,000,000)" tabindex="1" />
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" >
                        Besked<br>
                        <textarea name="index" rows="8" cols="35" class="ramme" style="font-family: Arial; font-size: 9pt;"></textarea>
                        <br>
                        <br>
                        <input type="submit" value="Send" style="font-family: Tahoma; font-size: 10pt; border: 0pt solid rgb(0,0,0); background: rgb(235,231,222);" />
                        </td>
                    </tr>
                </table>
                </form>

//>Rune
Avatar billede reno16 Nybegynder
23. april 2002 - 21:28 #9
jamen det vigtigste er bare om der står noget i felterne...
Avatar billede medions Nybegynder
23. april 2002 - 21:32 #10
ahh.. ok.. så skal du bare gøre sådan her:

<html>
    <head>
        <title></title>
    </head>
<body>
<script language="JavaScript">
    function validerIndex()
    {
        if (document.forms[0].navn.value == "")
        {
          alert('Du har ikke indtastet noget navn!'); return false
        }
   
        if (document.forms[0].email.value == "")
        {
          alert('Du har ikke indtastet nogen email adresse!'); return false
        }
       
        if (document.forms[0].index.value == "")
        {
          alert('Du har ikke indtastet nogen besked!'); return false
        }
    }
</script>
                <form name="kontakt" action="kontakt.htm" onSubmit="return validerIndex()">
                <table align="center" style="font-family:verdana;font-size: 8pt;">
                    <tr>
                        <td>Navn </td>
                        <td align="right">
                          <input type="text" name="navn" size="25" style="font-family: Arial; font-size: 9pt; border-left: medium none; border-right: medium none; border-top: medium none; background: rgb(235,231,222); border-bottom: 1px dashed rgb(128,128,128)" tabindex="1" />
                        </td>
                    </tr>
                    <tr>
                        <td>Email </td>
                        <td align="right">
                        <input type="text" name="email" size="25" style="font-family: Arial; font-size: 9pt; border-left: medium none; border-right: medium none; border-top: medium none; background: rgb(235,231,222); border-bottom: 1px dashed rgb(000,000,000)" tabindex="1" />
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" >
                        Besked<br>
                        <textarea name="index" rows="8" cols="35" class="ramme" style="font-family: Arial; font-size: 9pt;"></textarea>
                        <br>
                        <br>
                        <input type="submit" value="Send" style="font-family: Tahoma; font-size: 10pt; border: 0pt solid rgb(0,0,0); background: rgb(235,231,222);" / id=submit1 name=submit1>
                        </td>
                    </tr>
                </table>
                </form>

</body>
</html>


//>Rune
Avatar billede medions Nybegynder
23. april 2002 - 21:32 #11
Thx 4 Poinz!
//>Rune
Avatar billede reno16 Nybegynder
23. april 2002 - 21:35 #12
mange tak for hjælpen... jeg forsøger mig herfra!
Avatar billede medions Nybegynder
23. april 2002 - 21:40 #13
Anytime!

Held og lykke!
//>Rune
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