阻止Asp.NET按钮提交表单

本文关键字:提交 表单 按钮 NET Asp 阻止 | 更新日期: 2023-09-27 18:20:47

所以,我有一个神奇的Paypal表单。然而,我现在需要添加一个优惠券字段,有人可以在其中输入代码,并根据后端回复的内容获得折扣。

这一切都非常有效,但在检查您的代码是否有效之前,我在添加了解的选项时遇到了一个问题。目前,我的表格(一旦简化)如下:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"
    id="payPalForm" runat="server">
    <asp:TextBox runat="server" ID="txtCode" />
    <asp:Button Text="Validate" OnClick="ValidateDiscount" runat="server" />
    <asp:Label ID="txtDesc" runat="server" />
    <input type="submit" name="Submit" value="Pay up!" />
    <input type="hidden" name="cmd" value="_cart" />
    <input type="hidden" name="upload" value="1" />
    ...
</form>

后端具有以下功能:

protected void ValidateDiscount(object sender, EventArgs e)
{
    this.txtDesc.Text = "fetch from database using: " + txtCode.Text;
}

我的问题是,当我点击验证按钮时,表单就会提交,我最终会出现在Paypal网站上。起初,我将Jquery与preventDefault()一起使用,但这实际上阻止了服务器端函数的启动。我也尝试过放一个标准的<button><input type='button'>标记,但我无法让它启动我的服务器端函数。

是否有任何方法可以让"验证"按钮不提交表单,或者我应该从表单中删除操作,然后在单击"提交"按钮时手动提交表单?

阻止Asp.NET按钮提交表单

您已将表单操作设置为发布到PayPal。

这就是行动:

action="https://www.sandbox.paypal.com/cgi-bin/webscr"

这是你的表单标签:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"
id="payPalForm" runat="server">

将其从表单标记中删除,它将回发到应用程序。