Avatar billede runberg Nybegynder
18. juli 2001 - 14:38 Der er 15 kommentarer og
2 løsninger

Første punkt i formularen må ikke kunne vælges!!

Hejsa

Jeg har lavet en formular, som indeholder en dropdownbox, som henter sine valgmuligheder i en database. Ud over disse valgmuligheder har jeg lavet punkt, som ligger øvers i listen, hvor der står: Vælg By.... Problemet er bare at dette punkt må ikke kunne vælges. Hvordan klarer jeg den????

Min kode til formularen ser således ud:

<form method=\"POST\" action=\"findBy.asp\">
  <p><select size=\"1\" name=\"ByValg\">
  <option selected>Vælg By</option>
  <%
        Set Conn = Server.CreateObject(\"ADODB.Connection\")
        DSN = \"DRIVER={Microsoft Access Driver (*.mdb)};\"
        DSN = DSN & \"DBQ=\" & Server.MapPath(\"Database.mdb\")
        Conn.Open DSN

        strSQL = \"Select * from byTabel Order By byNavn\"
        Set rs = Conn.Execute(strSQL)

        Do While Not rs.EOF
 
              Response.Write \"<option>\" & rs(\"byNavn\") & \"</option>\"
            rs.MoveNext
     
        Loop
       
          Conn.Close
        set Conn = Nothing
      %>
  </select><input type=\"submit\" value=\"Send\" name=\"B1\"></p>
  <input type=\"hidden\" name=\"Gem\" value=\"FALSE\">
</form>

Jeg håber i kan hjælpe!!!
Avatar billede stig3 Mester
18. juli 2001 - 14:42 #1
prøv:

<option disabled>Vælg by</option>
Avatar billede stig3 Mester
18. juli 2001 - 14:42 #2
svar....
Avatar billede misbruger Nybegynder
18. juli 2001 - 14:43 #3
Hvad mener du med vælges???

Er det en validering der savnes???
Avatar billede runberg Nybegynder
18. juli 2001 - 14:44 #4
NOOP - Det virker ikke. Jeg kan stadig vælge punktet.
Avatar billede sbm Nybegynder
18. juli 2001 - 14:45 #5
Smag på hvad der er valgt i din findBy.asp, og hvis det er \"Vælg By\" så sender du dem retur til formularen med en redirect.

If request(\"ByValg\") = \"Vælg By\" then
      Response.Redirect Request.ServerVariables(\"HTTP_REFERER\")
end if

Du kan så selv tilføje lidt logik til at give en fornuftig fejlmeddelelse.
Avatar billede realone Nybegynder
18. juli 2001 - 14:46 #6
runberg --- Tror ikke du kan lave en select-box, hvor der er punkter man overhovedet ikke kan vælge.. Så må du slette \"vælg by\" og skrive det ovenover så folk ikke vælger det..!!
</RealOne>
Avatar billede stig3 Mester
18. juli 2001 - 14:46 #7
Jeg tror at du er nød til at validere formen før du sender den så.

Husk forøvrigt at sætte value på dine option tags.
Avatar billede runberg Nybegynder
18. juli 2001 - 14:46 #8
Det jeg mener er at jeg har en ræke punkter som kan vælges via dropdownboxen. Det øverste felt hedder \"Vælg By\", da det er det som folk skal gøre. Når besøgende så har valgt en by, skal de trykke på knappen send. Problemet er bare at man kan trykke på send, med punktet \"vælg By\" valgt, og så går det hele i ged.

Måske kunne man godt lave en slags validering, men hvordan gør man det i en formular????
Avatar billede sbm Nybegynder
18. juli 2001 - 14:48 #9
Du kan også ændre redirecten til

    Response.Redirect Request.ServerVariables(\"formularsiden.asp?fejlmeddelelse=duskalvaelgeenby\")

Når du så bliver sendt retur til formularsiden.asp, bliver der smagt på variablen fejlmeddelelse , og hvis den er sat til duskalvaelgeenby, vises der en passende meddelelse sammen med at formularen bliver vist en gang til.
Avatar billede runberg Nybegynder
18. juli 2001 - 14:50 #10
sbm>> Ja, det kunne jeg selvfølgelig gøre, men kan det virkelig passe at der ikke findes en nemmere måde at komme uden om dette problem på. Jeg gik ud fra at der lå en indbygget funktion, som man kunne bruge.

stig3>> Hvad mener du med at jeg skal sætte value på mine option tags?????
Avatar billede stig3 Mester
18. juli 2001 - 14:52 #11
<script language=JavaScript>
function valider(){
  if(formNavn.ByValg.value != VaelgBy)
    formNavn.submit();
  else
    alert(\'Vaelg en anden by\');
}
</script>

<input type=button value=submit onclick=\"valider();\">

Avatar billede misbruger Nybegynder
18. juli 2001 - 14:52 #12
Her er en lækker måde at gøre det på.....

på siden findby.asp:

<%
if request.form(\"byvalg\") = \"\" Then
response.redirect(\"form_siden.asp?st=by\")
end if
%>

på siden form_siden.asp:

<%Select Case Request.QueryString(\"st\")%>
<%case \"by\"%>
<center>
..:: DU SKAL VÆLGE EN BY ::..
..:: PRØV IGEN ::..
</center>
<script language=\"Javascript\">
<!--
setTimeout(\"history.back(-1)\",2000);
//-->
</script>
<%end select%>
Avatar billede stig3 Mester
18. juli 2001 - 14:53 #13
oops

if(formNavn.ByValg.value != \"VaelgBy\")
Avatar billede sbm Nybegynder
18. juli 2001 - 15:00 #14
Jeg mener ikke der er nogen metode indbygget i HTML. Grunden til at jeg foreslår denne løsning er fordi det så foregår serverside, og det har du en vis garanti for foregår ensartet uanset hvem der besøger din side. Hvis du løser det ved at smøre noget Javascript ind på siden, risikerer du at browsere håndterer det forskelligt, eller at siden måske besøges af folk der har valgt at slå javascript fra. Så har du igen \"ged i den\".
Avatar billede runberg Nybegynder
18. juli 2001 - 15:02 #15
OK.... Jeg har fået lidt at arbejde med kan jeg se... Og jeg som troede jeg kunne finde et lidt lettere måde at gøre det på....
Avatar billede net-rom Nybegynder
18. juli 2001 - 15:12 #16
Jeg havde det samme problem men så fandt jeg dette site:

http://216.247.15.72/dropdownform.htm

det skulle være løsningen det var det i hvertfald for mig.

Happy coding...
Avatar billede runberg Nybegynder
18. juli 2001 - 15:52 #17
net-rom>> Tak....
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