Har ett litet märkligt problem med ett formulär som jag inte blir av med.
Normalt när man fyller i ett formulär så kan man ju trycka "Enter" så trycks knappen "Skicka" ned och formuläret går då vidare till nästa sida och bearbetas.
Men i detta fallet så får jag ett felmeddelande. Det lyder
Åtgärden är inte tillåten när objektet är stängt.
Använder jag musen eller "TAB" så funkar det normalt
Formuläret:
<INPUT TYPE = "TEXT" NAME = "kundnummer">
<INPUT TYPE = "SUBMIT" NAME = "knapp" VALUE = "Välj kundnummer">
Nästa sida
If Request.Form("knapp") = "Välj kundnummer" Then
Jodå den pekar på raden med RecSet.Close i slutet av sidan.
Se koden för att ta emot resultatet nedan.
Kände också först att det var ngt med ASP-koden men eftersom man "manuellt" kan klicka på knappen så funkar det ju.
Set RecSet = Server.CreateObject("ADODB.Recordset")
If Request.Form("knapp") = "Välj kundnummer" Then
SQL = "SELECT * From kunder WHERE Kundnummer = '" & Request.Form("kundnummer") & "'"
RecSet.Open SQL, Connect
If RecSet.EOF THEN
response.write "<center><img border=""0"" src=""logga.jpg""></center>"
response.redirect "fel.asp"
End If
Do While Not RecSet.EOF
%>
Nu kanske denna tråd skulle ligga under ASP i stället.
Jag testade med att lägga en
onClick="return confirm('Är du färdig?');"
kopplad till knappen, men slår man "ENTER" så är det precis som om den inte trycker på knappen. Man får inte frågan "Är du färdig". Men man hamnar på nästa sida med felmeddelandet som jag beskrev ovan.
Ok, här kommer en förkortad kod från sidan.
<% Response.Buffer = True %>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("databasen.mdb")
Connect.Open = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
If Request.Form("knapp") = "Välj kundnummer" Then
SQL = "SELECT * From kunder WHERE Kundnummer = '" & Request.Form("kundnummer") & "'"
RecSet.Open SQL, Connect
If RecSet.EOF Then
response.redirect "fel.asp"
End If
Do While Not RecSet.EOF
%>
<html>
<head>
<title></title>
</head>
Orderdatum: <%=date%>
<form action = "sidan2.asp" method = "post" name="orderform" onsubmit = "return valid()">
<INPUT TYPE = "TEXT" NAME = "namn">
<INPUT TYPE = "TEXT" NAME = "adress">
....fler fält........
<input type=hidden name="kundnummer" value="<%=RecSet("kundnummer")%>"><%=RecSet("kundnummer")%>
....fler hiddenfält.....
<input type="submit" value="Skicka">
<%
RecSet.MoveNext
Loop
End If
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
Jag testade med att lägga en
onClick="return confirm('Är du färdig?');"
kopplad till knappen, men slår man "ENTER" så är det precis som om den inte trycker på knappen. Man får inte frågan "Är du färdig". Men man hamnar på nästa sida med felmeddelandet som jag beskrev ovan.
Det är väl ganska logiskt eftersom man aldrig trycker på knappen?
Skit i onclick på knappen, utan kör med onsubmit på formuläret.
Alltså:
<form onSubmit="return confirm('Är du färdig?');">
Måste ju vara en bugg om det inte funkar med bara en textruta förutom submit. Vid fler textrutor är det ju inget problem.
Det funkade inte att göra en textruta till type=hidden men
detta funkar:
<INPUT TYPE = "TEXT" NAME = "xxx" style="display:none">
<INPUT TYPE = "TEXT" NAME = "kundnummer">
<INPUT TYPE = "SUBMIT" NAME = "knapp" VALUE = "Välj kundnummer">