提交表单前执行方法

时间:2018-08-22 23:20:02

标签: c# asp.net webforms

我有以下代码来提交具有隐藏值的表单。

问题是-在将表单提交到远程地址MyNewValue之前,我无法设置https://some-remote-site/Form.aspx的值。

有人知道当用户单击按钮然后将表单提交到相同地址时如何设置隐藏值吗?

MyFile.aspx

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="height: 370px">    
    <form id="myForm" method="post" runat="server" action="https://some-remote-site/Form.aspx">
        <fieldset>
            <asp:HiddenField id="MyNewValue" Value="X" runat="server" />
            <p>
                <label for="Username">Username:</label>
                <asp:TextBox id="Username" Text="Username" runat="server" />
            </p>
            <asp:Button ID="SubmitForm" runat="server" onclick="SubmitForm_Click" Text="Button" />
        </fieldset>
    </form>
</body>

MyFile.aspx.cs

// Not executed because action="https://some-remote-site/Form.aspx" is set
protected void SubmitForm_Click(object sender, EventArgs e)
{
    MyNewValue.Value = DateTime.Now.ToString();
}

1 个答案:

答案 0 :(得分:3)

您可以使用jQuery在客户端进行操作。因此,当用户单击“提交”时,以及在提交表单之前,您可以更新隐藏的输入,然后返回true以继续提交表单。

这是可以做到的:

$(document).ready(function(){
    $('#myForm').on('submit', function(){
        $('#MyNewValue').val('YOUR_VALUE');
        return true;
    })
});