所以,我有一张可以创造奇迹的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网站上。我首先使用了具有preventDefault()的Jquery,但这实际上阻止了我的服务器端函数被触发。我也尝试过使用标准的<button>
或<input type='button'>
代码,但我无法启动它来启动我的服务器端功能。
有没有办法让Validate按钮不提交表单,或者我应该从表单中删除操作并在单击提交按钮时手动提交表单?
答案 0 :(得分:2)
您已将表单操作设置为发布到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">
从表单标记中删除它,它应该回发到您的应用程序。