【发布时间】:2016-02-06 14:18:11
【问题描述】:
所以,我有一个 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'> 标签,但我无法让它触发我的服务器端功能。
有没有办法让验证按钮不提交表单,或者我应该从表单中删除操作并在单击提交按钮时手动提交表单?
【问题讨论】:
-
您的表单将发布到贝宝,因为这是您为其设置的操作。你有很多选择。当您发现折扣有效时,您可以尝试从 c# 中的 ValidateDiscount 函数重定向到 paypal。