Avatar billede newbie.dk Praktikant
08. marts 2004 - 14:46 Der er 8 kommentarer og
2 løsninger

Formular - begræning af indtastning, f.eks 3 cifre og email tjek

Hej.
Jeg har en lille formular som sender data til en database.
I nogle felter vil jeg gerne have at man kun kan taste 3 tal ind og ikke tekst. F.eks 134. Det skal være sådan at man ikke kan indtaste over f.eks 500.
I mit email-felt vil jeg gerne have den tjekker for manglede @ og måske lige mere, ved ikke lige hvad det skulle være. Men her har i måske nogle ideer.

Så denne http://www.eksperten.dk/spm/404458 men den ser lidt vild ud. Det kan være i kan reducere den lidt.
Avatar billede tzag_dk Nybegynder
08. marts 2004 - 14:49 #1
Mht. e-mail så kan du måske bruge dette:
http://www.html.dk/scripts/javascript/00019/

// Rene
Avatar billede newbie.dk Praktikant
09. marts 2004 - 13:40 #2
Jeg ville nu gerne have holdt mig til ASP.
Men jeg kan se at der ikke er mange der kan. (Troede faktisk at alle ASP-hajerne havde nogle ideer)
Sætter lige point op.
Avatar billede l_otto Nybegynder
09. marts 2004 - 16:22 #3
med email kan du bruge denne her:

If strEmail = "" Or instr(strEmail, "@") = 0 then
    displayHeader()
    Response.Write "<font size='2'><b>" & "Skriv venligst din e-mail." & "</b><br><br>" & "<font size='2'>" & "<A HREF='java script:window.history.back(1)'>Tryk her</A>" & "<br><br>"
    Response.Write "<hr color='#cccccc' size='1' noshade>"
    Response.End
Avatar billede l_otto Nybegynder
09. marts 2004 - 16:24 #4
den skal i toppen af siden

<%
  set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

'displays header on form field validation pages
function displayHeader()
    Response.Write "<html>"
    Response.Write "<head>"
    Response.Write "<body>"
    Response.Write "<table border='0'>"
    Response.Write "<tr>"
    Response.Write "<td valign='top' nowrap>" 
    Response.Write "</td>"
    Response.Write "</tr>"
    Response.Write "</table>"
    Response.Write "<hr color='#cccccc' size='1' noshade>"
    Response.Write "<div align = 'left'>"
end function
%>
Avatar billede websam Nybegynder
10. marts 2004 - 07:30 #5
Du kan da prøve med dette. Dit formularfelt sætter du til dette :

<input type="text" name="felt" maxlength="3">

på den måde kan der max indtastes 3 karaktere i dit felt.

Og så når du validere på dit felt er det jo blot at tjekke op på om det er tal og ikke tekst på denne måde :

Dim intTal
intTal = Request.Form("Felt")
If not int(intTal) = True Then
  '--- En eller kode
End If

Eller noget i den stil så har du lidt at arbejde med :o)

/Websam
Avatar billede websam Nybegynder
10. marts 2004 - 07:31 #6
Nej bedere endnu :

If not isNumeric(intTal) Then
  '--- en eller anden kode
End If

/Websam
Avatar billede websam Nybegynder
10. marts 2004 - 21:08 #7
Hva så newbie.dk finder du ud af om det virker eller hvad bliver det til :o)

Nå pjat til side for at tjekke op på om der bliver skrevet mere end f.eks 500 i dit felt kan du jo tilføje noget i denne stil med :

If isNumeric(intTal) <= 500 Then
  '--- en eller anden kode
End If

Eller var det >= kan aldrig huske det :o)

/Websam
Avatar billede newbie.dk Praktikant
11. marts 2004 - 16:51 #8
Du har givet mig så meget at arbejde med, så det tager lidt tid.
Din max virker. Men jeg kan ikke lige få placeret din intTal nogle steder.
Jeg går ud fra den skal indsættes før tallene kommer i databasen. Men det virker ikke lige.
Avatar billede newbie.dk Praktikant
11. marts 2004 - 17:19 #9
Det virker til dels.
Hvis der ikke står tal i feltet skriver den min tekst. Men den går ikke videre i scriptet, og jeg får en:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

Uanset om feltet er udfyldt rigtigt.

Jeg har sat koden ind først på siden, altså før jeg opretter forbindelse til database.

<%
    Dim intTal
    intTal = Request.Form("bla")
    If not isNumeric(intTal) Then
      Response.Write "<h2>Kun tal i feltet 'bla'</h2>"
    End If

    Dim intTal2
    intTal2 = Request.Form("bla2")
    If not isNumeric(intTal2) Then
      Response.Write "<h2>Kun tal i feltet 'bla2'</h2>"
    End If
%>

Hvad skal jeg lige putte ind så den hopper videre hvis alt passer til:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../bla.mdb")
Conn.Open DSN.........
Avatar billede newbie.dk Praktikant
17. marts 2004 - 21:41 #10
Jeg har desværre ikke fået det til at virke.
Men du får lige 30point for det med max 3.
Takker igen.
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