You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP表单提交时无法获取btnSubmit按钮对应值的问题咨询

问题根源

  • 你当前使用的是type="button"的按钮,只有type="submit"类型的按钮在触发表单提交时,才会自动将自身的name和value参数提交到后端,你通过JS手动调用submit()方法提交表单时,不会带上普通button的参数
  • 经典ASP代码存在语法错误:approval_value是普通字符串变量,不能用set关键字赋值,set仅用于COM对象赋值,这也是你拿不到值的原因之一

解决方案

方案1:直接改用submit类型按钮,无需JS提交(最简单)

把两个操作按钮改成type="submit",删除原有JS提交函数,点击按钮时会自动提交表单并带上对应按钮的值:

<form name="frmInput" method="POST">
<table>
    <tr class="font10black">
        <td colspan="3" align="right"> 
        <input class="button" type="button" name="btnSubmit" value="BACK" onClick="frmBack()" >
        &nbsp;
        <input type="hidden" name="file_name" value="<%=file_name%>">
        <!-- 改成submit类型,不需要额外绑定onclick提交事件 -->
        <input class="button" type="submit" name="btnSubmit" value="REJECT" >
        <input class="button" type="submit" name="btnSubmit" value="APPROVE" >
        &nbsp;
        </td>
    </tr>
</table>
</form>

同步修改ASP后端代码,去掉普通变量赋值的set关键字:

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    dim oConnDbMUDP
    set oConnDbMUDP = server.CreateObject("ADODB.connection")
    oConnDbMUDP.Mode = 3        'allow writable
    oConnDbMUDP.CursorLocation = 3
    oConnDbMUDP.ConnectionTimeout = 600
    oConnDbMUDP.CommandTimeout = 600
    oConnDbMUDP.Open(SESSION("g_strDataConn"))
    dim file
    file = request.Form("file_name") ' 普通变量赋值不用set
    dim approval_value
    approval_value = request.form("btnSubmit") ' 字符串变量赋值去掉set

    if Approval_value = "APPROVE" then
        v_strMsg = "Upload Merchant Telah diapprove dan telah diinsert ke database"
    else
        v_strMsg = "Upload Merchant Telah direject dan telah diinsert ke database"
    end if
End If

方案2:保留JS提交逻辑,新增隐藏域传递值

如果你必须保留现有的JS提交逻辑,可以新增一个专门存储审核状态的隐藏域,点击按钮时先给隐藏域赋值再提交表单:

  1. 表单内新增隐藏域
<!-- 新增隐藏域存储审核状态 -->
<input type="hidden" name="approval_status" id="approval_status" value="">
<input class="button" type="button" name="btnSubmit" value="REJECT" onClick="frmReject()" >
<input class="button" type="button" name="btnSubmit" value="APPROVE" onClick="frmSubmit()" >
  1. 修改JS提交函数
function frmSubmit(){
    document.getElementById('approval_status').value = 'APPROVE';
    document.frmInput.submit();
}
function frmReject() {
    document.getElementById('approval_status').value = 'REJECT';
    document.frmInput.submit();
}
  1. 后端直接读取隐藏域的值即可
dim approval_value
approval_value = request.form("approval_status")

内容的提问来源于stack exchange,提问作者Romli Eko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:03:00