asp 应用程序按钮未正确执行且未执行服务器调用
asp application button doesn't perform correctly and does not execute the server call
我正在开发一个经典的 asp 应用程序(我知道,不是自愿的)。
我的表单中有一个按钮,该按钮应该根据用户输入的条件进行搜索。
要给出一个基本结构,它看起来像这样:
<form action="IncidentMain.asp" method="post" name="frmAdd" onSubmit="return checkform( this )">
<input TYPE="image" SRC="Include/Search.gif" ALT="Search" VALUE="submit" id="IMAGE4" name="IMAGE2" onclick="javascript: document.frmAdd.txtaction.value = 'search';" >
</form>
单击按钮后,如表单 action ="IncidentMain.asp"
中所示,在提交时我调用了一个函数,该函数实际上被正确调用了。
function checkform ( form )
{
if (form.txtIncidentNumber.value == "") {
alert( "Please Enter Incident Number" );
form.txtIncidentNumber.focus();
return false ;
}
alert("IM HERE");
return true ;
}
所以它肯定通过了这个函数,然后我有了最后一段代码来实际进行搜索:
<%
IF Request.Form("txtaction") = "search" THEN
'IT NEVER GETS HERE
'SeLECT DATA FROM SQL SERVER
End if
%>
我不明白为什么会这样。 IT 基本上看起来不想与服务器通信,它在某处突然停止。有什么原因导致此代码不起作用?
编辑:
<form method="post" action="Incident.asp" name="frmuser" onsubmit="return checkform( this )">
<input type="submit" value="Save / Submit" name="btnSubmit"
id="SaveButton" >
</form>
这里的代码没有命中 checkform(this)
函数,但它到达了我的 VB 代码,它是这样开始的:
<%
if Request.Form("btnSubmit") ="Save / Submit" THEN
在表单中添加一个隐藏的 txtaction
输入字段。
如果您只想检查是否已提交您可以使用的搜索,该方法可能会简单得多;
Dim is_submit: is_submit = (Len(Request.Form & "") > 0)
If is_submit Then
'We have a POST form submission do something.
End If
甚至;
Dim request_method: request_method = LCase(Request.ServerVariables("REQUEST_METHOD") & "")
If request_method = "post" Then
'We have a POST request (likely a form submission).
End If
存储隐藏的输入值只会使 HTML 变得混乱,并且在很多情况下是不必要的,当您还必须在页面中使用事件处理程序更新它们时,您会增加不必要的复杂性的额外层。
然而,要使其中的任何一个起作用,您必须有一些东西来包含搜索,最简单的形式应该类似于;
<form action="IncidentMain.asp" method="post">
<input type="text" name="txtIncidentNumber" value="" />
<input type="image" name="IMAGE2" src="Include/Search.gif" alt="Search" value="submit" />
</form>
表单缺少隐藏字段 "txtaction"。添加字段并输入值="search"。
并删除应该这样做的 javascript。
我正在开发一个经典的 asp 应用程序(我知道,不是自愿的)。 我的表单中有一个按钮,该按钮应该根据用户输入的条件进行搜索。
要给出一个基本结构,它看起来像这样:
<form action="IncidentMain.asp" method="post" name="frmAdd" onSubmit="return checkform( this )">
<input TYPE="image" SRC="Include/Search.gif" ALT="Search" VALUE="submit" id="IMAGE4" name="IMAGE2" onclick="javascript: document.frmAdd.txtaction.value = 'search';" >
</form>
单击按钮后,如表单 action ="IncidentMain.asp"
中所示,在提交时我调用了一个函数,该函数实际上被正确调用了。
function checkform ( form )
{
if (form.txtIncidentNumber.value == "") {
alert( "Please Enter Incident Number" );
form.txtIncidentNumber.focus();
return false ;
}
alert("IM HERE");
return true ;
}
所以它肯定通过了这个函数,然后我有了最后一段代码来实际进行搜索:
<%
IF Request.Form("txtaction") = "search" THEN
'IT NEVER GETS HERE
'SeLECT DATA FROM SQL SERVER
End if
%>
我不明白为什么会这样。 IT 基本上看起来不想与服务器通信,它在某处突然停止。有什么原因导致此代码不起作用?
编辑:
<form method="post" action="Incident.asp" name="frmuser" onsubmit="return checkform( this )">
<input type="submit" value="Save / Submit" name="btnSubmit"
id="SaveButton" >
</form>
这里的代码没有命中 checkform(this)
函数,但它到达了我的 VB 代码,它是这样开始的:
<%
if Request.Form("btnSubmit") ="Save / Submit" THEN
在表单中添加一个隐藏的 txtaction
输入字段。
如果您只想检查是否已提交您可以使用的搜索,该方法可能会简单得多;
Dim is_submit: is_submit = (Len(Request.Form & "") > 0)
If is_submit Then
'We have a POST form submission do something.
End If
甚至;
Dim request_method: request_method = LCase(Request.ServerVariables("REQUEST_METHOD") & "")
If request_method = "post" Then
'We have a POST request (likely a form submission).
End If
存储隐藏的输入值只会使 HTML 变得混乱,并且在很多情况下是不必要的,当您还必须在页面中使用事件处理程序更新它们时,您会增加不必要的复杂性的额外层。
然而,要使其中的任何一个起作用,您必须有一些东西来包含搜索,最简单的形式应该类似于;
<form action="IncidentMain.asp" method="post">
<input type="text" name="txtIncidentNumber" value="" />
<input type="image" name="IMAGE2" src="Include/Search.gif" alt="Search" value="submit" />
</form>
表单缺少隐藏字段 "txtaction"。添加字段并输入值="search"。 并删除应该这样做的 javascript。