webForumDet fria alternativet

Formulär

12 svar · 324 visningar · startad av Bj

BjMedlem sedan sep. 2000320 inlägg
#1

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
@ndersMedlem sedan juni 200026 914 inlägg
#2

Det känns helt klart som att felet är ett asp-fel. Pekar inte felmeddelandet på en viss rad? Hur ser koden ut?

Det beror förmodligen på att din if-sats aldrig blir sann eftersom du inte klickade på knappen, då har ju inte Request.Form("knappen") något värde.

mvh

BjMedlem sedan sep. 2000320 inlägg
#3

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
	%>
MatteMedlem sedan aug. 20002 970 inlägg
#4

Nu kan jag inget om ASP, men jag har råkat ut för liknande när man bara har ett fält förutom submitknappen.

Lösningen är att antingen att på skriptsidan fråga efter kundnummer eller att göra så här:

<input type="hidden" name= "knapp" value="">
<INPUT TYPE = "TEXT" NAME = "kundnummer">
<INPUT TYPE = "SUBMIT"  VALUE = "Välj kundnummer">
BjMedlem sedan sep. 2000320 inlägg
#5

Testade Mattes förslag men då blev det samma fel + att det inte gick att logga in även om man klickade på knappen...

Jesper TMedlem sedan nov. 20017 058 inlägg
#6

Posta mera asp-kod.

BjMedlem sedan sep. 2000320 inlägg
#7

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
	%>
Jesper TMedlem sedan nov. 20017 058 inlägg
#8

Ändra till detta:

<%
	RecSet.MoveNext
	Loop
	End If
	RecSet.Close
        Set RecSet = nothing
	Connect.Close
	Set Connect = nothing
	%>
BjMedlem sedan sep. 2000320 inlägg
#9

Tyvärr.. samma fel.

dectgapMedlem sedan sep. 20021 542 inlägg
#10

Bj skrev:

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?');">
BjMedlem sedan sep. 2000320 inlägg
#11

Ja de må vara hänt men det ursprungliga problemet ligger fast.

jupitersMedlem sedan sep. 2002102 inlägg
#12

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">

BjMedlem sedan sep. 2000320 inlägg
#13

Där satt den!!
Tack jupiters och er andra för hjälpen!!

150 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
147 ms — hämta tråd, inlägg och bilagor (db)