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。