Avatar billede mkilic Nybegynder
14. marts 2001 - 20:32 Der er 17 kommentarer og
1 løsning

Hvordan validere man med javascript i en ASP-fil?

Jeg kunne godt tænke mig at vide om hvordan man validere i en asp-fil. Blandt andet hvordan man checker for om en email er korrekt indtastet og checke for om et felt indeholder et tal, checke for om længde af det indtastede er korrekt.


Avatar billede netsrac Praktikant
14. marts 2001 - 20:33 #1
Kanske på samme måde som i en html fil. Eller er du ude efter javascript funktionerne ? eller vil du lave serverside validering ?
Avatar billede netsrac Praktikant
14. marts 2001 - 20:34 #2
Kanske = Ganske
Avatar billede blazer Nybegynder
14. marts 2001 - 20:34 #3
tal

If isnumeric(request.form(\"Blah\"))=True then

OK!

email

If Instr(request.form(\"Blah\"),\"@\") <> 0 and instr(request.form(\"Blah\"),\".\")<> 0 then

OK
Avatar billede netsrac Praktikant
14. marts 2001 - 20:36 #4
Serverside længde:

if len(request.form(\"felt\")) <> 10 then
\'hvis længden er forskellig fra 10
end if
Avatar billede keysersoze Guru
14. marts 2001 - 20:45 #5
du kan også godt bruge javascript som du selv foreslår - de (javascriptene) må bare ikke stå mellem <% %> tegnene...

fx

%>

\'javascript\'

<%
Avatar billede mkilic Nybegynder
14. marts 2001 - 20:51 #6
Jeg har lavet et html-fil med en udfyldningsform hvor der er validering på.
www.datamatikeruddannelsen.dk/mkilic/form/profil20.htm

Da jeg nu har behov får at hente alle mulige postnummer fra databasen bliver jeg nødt til at ændre min html-filen til en asp-fil som henter postnumrene fra databasen. Jeg vil nu vide hvordan jeg skal validere de andre felter i formen. Kan jeg genbruge den validering som jeg havde i html-filen på asp-filen.

Avatar billede netsrac Praktikant
14. marts 2001 - 20:54 #7
Ja du kan godt genbruge javascript valideringen.
Avatar billede netsrac Praktikant
14. marts 2001 - 20:55 #8
ASP kan flettes ind i dit html dokument uden at have nogen efekt på din html / javascript.
Avatar billede mkilic Nybegynder
14. marts 2001 - 20:58 #9
Ja men hvordan kan du give fortælle hvordan min kode for asp-filen skal se ud hvis jeg ønsker html-filen ændret så den hedder noget med asp. Her min kode for html-filen.

profil20.htm

<html>
<TITLE>Oprettelse af profil</TITLE>
<BASEFONT FACE=\"Comic Sans MS\" COLOR=\"DarkBlue\">
<h2>OPRETTELSE AF PROFIL</h2>
<Script language=\"JavaScript\">
<!--
//global variable for error flag
var errfound = false;
//længde af text streng
function ValidLength(item, len) {
return (item.length >= len);
}
// email adresse kontrol
function gyldigEmail(email) {
            ugyldigeTegn = \" /:,;\"
           
            // Må ikke være tom
            if (email == \"\") {
                return false
            }
           
            // Indeholder den ugyldige tegn?
            for (i=0; i<ugyldigeTegn.length; i++) {   
                fejlTegn = ugyldigeTegn.charAt(i)
                if (email.indexOf(fejlTegn,0) > -1) {
                    return false
                }
            }
           
            // Der skal være et @-tegn
            paaPos = email.indexOf(\"@\",1)
            if (paaPos == -1) {
                return false
            }
           
            // Og kun et @-tegn
            if (email.indexOf(\"@\",paaPos+1) != -1) {
                return false
            }
            punktumPos = email.indexOf(\".\",paaPos)
           
            // og mindst et punktum efter @-tegnet
            if (punktumPos == -1) {
                return false
            }
           
            // der skal være mindst 2 tegn efter punktummet
            if (punktumPos+3 > email.length)    {
                return false
            }
            return true
        }
       
   


// Postnr kontrol?
        function erTal(afgivetVaerdi) {
        if (afgivetVaerdi == \"\") {
        return false
        }
        for (i=0; i<afgivetVaerdi.length; i++) {
        if (afgivetVaerdi.length < 4) {
        return false
        }
        if (afgivetVaerdi.charAt(i) > \"9\") {
        return false
        }
        }
        return true
        }
       
// fejlmeddelelse
function error(elem, text) {
// stop hvis fejl
if (errfound) return;
window.alert(text);
elem.select();
elem.focus();
errfound = true;
}
       
// kontrolfunktion
function Validate() {
errfound = false;
if (!ValidLength(document.form.fornavn.value,2))
error(document.form.fornavn,\"Ugyldig fornavn!\");
if (!ValidLength(document.form.efternavn.value,3))
error(document.form.efternavn,\"Ugyldig efternavn!\");
if (!ValidLength(document.form.adresse.value,8))
error(document.form.adresse, \"Ugyldig adresse!\");
if (!erTal(document.form.postnr.value))
error(document.form.postnr,\"Postnummeret er ugyldigt\");
if (!ValidLength(document.form.bynavn.value,4))
error(document.form.bynavn, \"Ugyldig bynavn!\");
if (!gyldigEmail(document.form.email.value))
error(document.form.email, \"Ugyldig email adresse!\");
if (document.form.kvalifikationer.selectedIndex == -1)
error(document.form.kvalifikationer, \"Du skal vælge mindst én kvalifikation\");

return !errfound; /* sand hvis ingen error fundet */
}
// -->
</script>
</head>
<body >


<FORM NAME=\"form\" onSubmit=\"return Validate();\" ACTION=\"vispro.asp\" METHOD=\"post\">
<table border=\"0\">
        <tr>
          <td><font size=\"4\">Fornavn</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"fornavn\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Efternavn</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"efternavn\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Adresse</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"adresse\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Postnummer og by</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"4\" maxlength=\"4\" name=\"postnr\">
          <input type=\"text\" size=\"28\" name=\"bynavn\"></font></td>
        </tr>
    <tr>
          <td><font size=\"4\">Uddannelse</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"uddannelse\"></font></td>
        </tr>
    <tr>
          <td><font size=\"4\">E-mail</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"email\"></font></td>
<td><font size=\"4\">bruges som din brugerID</font></td>
        </tr>
        <TR>
      <TD><font size=\"4\">Arbejdssted:</font></TD>
      <TD><select name=\"arbejdssted\">
      <OPTION VALUE=\"\" selected>
      <OPTION VALUE=\"Hjemme\">Hjemme
      <OPTION VALUE=\"Arbejdsplads\">Arbejdsplads
      <OPTION VALUE=\"Begge\">Begge
      </SELECT></TD>
    </TR>
<BR><BR>
<TR>
  <TD><font size=\"4\">Kvalifikationer:</font></TD>
  <TD><SELECT NAME=\"kvalifikationer\" SIZE=5 MULTIPLE>
      <OPTION VALUE=\"ASP\">ASP
      <OPTION VALUE=\"PHP\">PHP
      <OPTION VALUE=\"JAVA\">JAVA
      <OPTION VALUE=\"XML\">XML
      <OPTION VALUE=\"PERL\">PERL
      <OPTION VALUE=\"HTML\">HTML
      <OPTION VALUE=\"ACCESS\">ACCESS
      <OPTION VALUE=\"MS SQL\">MS SQL
      <OPTION VALUE=\"COBOL\">COBOL
      <OPTION VALUE=\"CORBA\">CORBA
      <OPTION VALUE=\"DELPHI\">DELPHI
      <OPTION VALUE=\"C++\">C++
      <OPTION VALUE=\"JAVA SCRIPT\">JAVA SCRIPT
      <OPTION VALUE=\"CGI\">CGI
      <OPTION VALUE=\"WWW\">WWW
      <OPTION VALUE=\"OPERATIV SYSTEMER\">OPERATIV SYSTEMER
      <OPTION VALUE=\"DISTRIBUERDE SYSTEMER\">DISTRIBUERDE SYSTEMER
      <OPTION VALUE=\"MULTIMEDIA\">MULTIMEDIA
        <OPTION VALUE=\"NETVÆRK\">NETVÆRK
        <OPTION VALUE=\"DB2\">DB2
      <OPTION VALUE=\"OOAD\">OOAD
      <OPTION VALUE=\"SAD\">SAD
      </SELECT>
    </TD>
  </TR>
</table>

<table border=\"0\">   
      <tr>
        <td colspan=\"2\" align=\"left\" valign=\"top\">
        <font size=\"4\">Erhvervsfaglig uddannelse: </font>
        </td>
      </tr>
      <tr>
            <td >
        <textarea rows=\"5\" cols=\"48\" wrap=\"virtual\" name=\"Erhvervsuddbox\"></textarea>
        </td>
          </tr>
      <tr>
        <td colspan=\"2\" align=\"left\" valign=\"top\">
        <font size=\"4\">Øvrige informationer: </font>
        </td>
      </tr>
      <tr>
            <td >
        <textarea rows=\"5\" cols=\"48\" wrap=\"virtual\" name=\"Øvrigeinfobox\"></textarea>
        </td>
       
      </tr>
      </table>
<table >
  <tr>
<td width=\"33%\"></td>
<td><input type=\"submit\" value=\"Opret\"></td>
<td><INPUT TYPE=Reset VALUE=\" Reset \"></td>
<td width=\"45%\"></td>
        </tr>
  </table>
</form>
</body>
</html>
Avatar billede netsrac Praktikant
14. marts 2001 - 21:02 #10
Postnummeret har du i en database ikke ? Hvad hedder databasen og hvad hedder felterne ?
Avatar billede netsrac Praktikant
14. marts 2001 - 21:08 #11
Et eksempel kunne være:


<html>
<TITLE>Oprettelse af profil</TITLE>
<BASEFONT FACE=\"Comic Sans MS\" COLOR=\"DarkBlue\">
<h2>OPRETTELSE AF PROFIL</h2>
<Script language=\"JavaScript\">
<!--
//global variable for error flag
var errfound = false;
//længde af text streng
function ValidLength(item, len) {
return (item.length >= len);
}
// email adresse kontrol
function gyldigEmail(email) {
            ugyldigeTegn = \" /:,;\"
           
            // Må ikke være tom
            if (email == \"\") {
                return false
            }
           
            // Indeholder den ugyldige tegn?
            for (i=0; i<ugyldigeTegn.length; i++) {   
                fejlTegn = ugyldigeTegn.charAt(i)
                if (email.indexOf(fejlTegn,0) > -1) {
                    return false
                }
            }
           
            // Der skal være et @-tegn
            paaPos = email.indexOf(\"@\",1)
            if (paaPos == -1) {
                return false
            }
           
            // Og kun et @-tegn
            if (email.indexOf(\"@\",paaPos+1) != -1) {
                return false
            }
            punktumPos = email.indexOf(\".\",paaPos)
           
            // og mindst et punktum efter @-tegnet
            if (punktumPos == -1) {
                return false
            }
           
            // der skal være mindst 2 tegn efter punktummet
            if (punktumPos+3 > email.length)    {
                return false
            }
            return true
        }
       
   


// Postnr kontrol?
        function erTal(afgivetVaerdi) {
        if (afgivetVaerdi == \"\") {
        return false
        }
        for (i=0; i<afgivetVaerdi.length; i++) {
        if (afgivetVaerdi.length < 4) {
        return false
        }
        if (afgivetVaerdi.charAt(i) > \"9\") {
        return false
        }
        }
        return true
        }
       
// fejlmeddelelse
function error(elem, text) {
// stop hvis fejl
if (errfound) return;
window.alert(text);
elem.select();
elem.focus();
errfound = true;
}
       
// kontrolfunktion
function Validate() {
errfound = false;
if (!ValidLength(document.form.fornavn.value,2))
error(document.form.fornavn,\"Ugyldig fornavn!\");
if (!ValidLength(document.form.efternavn.value,3))
error(document.form.efternavn,\"Ugyldig efternavn!\");
if (!ValidLength(document.form.adresse.value,8))
error(document.form.adresse, \"Ugyldig adresse!\");
if (!erTal(document.form.postnr.value))
error(document.form.postnr,\"Postnummeret er ugyldigt\");
if (!ValidLength(document.form.bynavn.value,4))
error(document.form.bynavn, \"Ugyldig bynavn!\");
if (!gyldigEmail(document.form.email.value))
error(document.form.email, \"Ugyldig email adresse!\");
if (document.form.kvalifikationer.selectedIndex == -1)
error(document.form.kvalifikationer, \"Du skal vælge mindst én kvalifikation\");

return !errfound; /* sand hvis ingen error fundet */
}
// -->
</script>
</head>
<body >


<FORM NAME=\"form\" onSubmit=\"return Validate();\" ACTION=\"vispro.asp\" METHOD=\"post\">
<table border=\"0\">
        <tr>
          <td><font size=\"4\">Fornavn</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"fornavn\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Efternavn</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"efternavn\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Adresse</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"adresse\"></font></td>
        </tr>
        <tr>
          <td><font size=\"4\">Postnummer og by</font></td>
          <td><font size=\"4\">
<SELECT NAME=\"postnr\">
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"postnr.mdb\") & \";UID=admin;PWD=;\"
Set rs = Conn.execute(\"select * from postnr\")
do until rs.eof %>
<OPTION VALUE=\"<%=rs(\"postnummer\") %>\"><%=rs(\"postnummer\") %></OPTION>
<%
rs.movenext
loop
set rs = nothing
conn.close
set conn = nothing %>
</SELECT>
          <input type=\"text\" size=\"28\" name=\"bynavn\"></font></td>
        </tr>
    <tr>
          <td><font size=\"4\">Uddannelse</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"uddannelse\"></font></td>
        </tr>
    <tr>
          <td><font size=\"4\">E-mail</font></td>
          <td><font size=\"4\"><input type=\"text\" size=\"35\" name=\"email\"></font></td>
<td><font size=\"4\">bruges som din brugerID</font></td>
        </tr>
        <TR>
      <TD><font size=\"4\">Arbejdssted:</font></TD>
      <TD><select name=\"arbejdssted\">
      <OPTION VALUE=\"\" selected>
      <OPTION VALUE=\"Hjemme\">Hjemme
      <OPTION VALUE=\"Arbejdsplads\">Arbejdsplads
      <OPTION VALUE=\"Begge\">Begge
      </SELECT></TD>
    </TR>
<BR><BR>
<TR>
  <TD><font size=\"4\">Kvalifikationer:</font></TD>
  <TD><SELECT NAME=\"kvalifikationer\" SIZE=5 MULTIPLE>
      <OPTION VALUE=\"ASP\">ASP
      <OPTION VALUE=\"PHP\">PHP
      <OPTION VALUE=\"JAVA\">JAVA
      <OPTION VALUE=\"XML\">XML
      <OPTION VALUE=\"PERL\">PERL
      <OPTION VALUE=\"HTML\">HTML
      <OPTION VALUE=\"ACCESS\">ACCESS
      <OPTION VALUE=\"MS SQL\">MS SQL
      <OPTION VALUE=\"COBOL\">COBOL
      <OPTION VALUE=\"CORBA\">CORBA
      <OPTION VALUE=\"DELPHI\">DELPHI
      <OPTION VALUE=\"C++\">C++
      <OPTION VALUE=\"JAVA SCRIPT\">JAVA SCRIPT
      <OPTION VALUE=\"CGI\">CGI
      <OPTION VALUE=\"WWW\">WWW
      <OPTION VALUE=\"OPERATIV SYSTEMER\">OPERATIV SYSTEMER
      <OPTION VALUE=\"DISTRIBUERDE SYSTEMER\">DISTRIBUERDE SYSTEMER
      <OPTION VALUE=\"MULTIMEDIA\">MULTIMEDIA
        <OPTION VALUE=\"NETVÆRK\">NETVÆRK
        <OPTION VALUE=\"DB2\">DB2
      <OPTION VALUE=\"OOAD\">OOAD
      <OPTION VALUE=\"SAD\">SAD
      </SELECT>
    </TD>
  </TR>
</table>

<table border=\"0\">   
      <tr>
        <td colspan=\"2\" align=\"left\" valign=\"top\">
        <font size=\"4\">Erhvervsfaglig uddannelse: </font>
        </td>
      </tr>
      <tr>
            <td >
        <textarea rows=\"5\" cols=\"48\" wrap=\"virtual\" name=\"Erhvervsuddbox\"></textarea>
        </td>
          </tr>
      <tr>
        <td colspan=\"2\" align=\"left\" valign=\"top\">
        <font size=\"4\">Øvrige informationer: </font>
        </td>
      </tr>
      <tr>
            <td >
        <textarea rows=\"5\" cols=\"48\" wrap=\"virtual\" name=\"Øvrigeinfobox\"></textarea>
        </td>
       
      </tr>
      </table>
<table >
  <tr>
<td width=\"33%\"></td>
<td><input type=\"submit\" value=\"Opret\"></td>
<td><INPUT TYPE=Reset VALUE=\" Reset \"></td>
<td width=\"45%\"></td>
        </tr>
  </table>
</form>
</body>
</html>
Avatar billede netsrac Praktikant
14. marts 2001 - 21:10 #12
I eksemplet hedder databasen postnr.mdb
tabellen hedder postnr
og feltet som indeholder postnumrene hedder postnummer.

Så skal du bare slå din javascript validering af postnummer fra også kører det :-)
Avatar billede mkilic Nybegynder
14. marts 2001 - 21:10 #13
Databasen hedder ddprojekt og tabellen hvori postnummeret skal indsættes i hedder profil.

CREATE TABLE PROFIL
(MAILADRESSE CHAR(255) NOT NULL,
FNAVN CHAR(30) NOT NULL,
ENAVN CHAR(30) NOT NULL,
ADRESSE CHAR(30) NOT NULL,
POSTNR CHAR(4) NOT NULL,
BYNAVN CHAR(30) NOT NULL,
UDDANNELSE CHAR(30) NOT NULL,
ARBEJDSSTED CHAR(30) NOT NULL,
KVALIFIKATIONER VARCHAR(255) NULL,
ERHVERVSUDD VARCHAR(255) NULL,
INFO VARCHAR(255) NULL,
OPRETDATO DATETIME NOT NULL,
OPDATERINGDATO DATETIME NOT NULL,
PRIMARY KEY(MAILADRESSE),
FOREIGN KEY(POSTNR) REFERENCES POSTNUMMER(POSTNR))
Avatar billede mkilic Nybegynder
14. marts 2001 - 21:13 #14
Jeg skal jo hente postnummeren op fra databasen og vise dem overfor brugeren så han kan vælge et postnummer.
Avatar billede netsrac Praktikant
14. marts 2001 - 21:13 #15
Nååå skal det sættes ind i en database, jeg troede bare du ville hente postnummeret ud fra en database, well laver lige et andet eksempel så.
Avatar billede netsrac Praktikant
14. marts 2001 - 21:15 #16
Så man kan vælge postnummer er præcis hvad jeg har givet et eksempel på ?
Avatar billede mkilic Nybegynder
14. marts 2001 - 21:20 #17
Det må du undskylde jeg havde ikke læst hele koden igennem. Fint det virker nu.
Avatar billede netsrac Praktikant
14. marts 2001 - 21:21 #18
Det er helt okay, jeg er bare glad for at jeg kunne hjælpe :-)
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
Kurser inden for grundlæggende programmering

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