如何订阅点击HTML表单的事件?(How to subscribe to click event o

2019-07-30 01:11发布

我有一个谷歌结帐“立即购买”按钮,我想添加动态创建的信息,单击时发送。 我怎么做?

按钮的HTML是:

<form action="https://sandbox.google.com/checkout/..." id="Form1" method="post" name="..." target="_top">
<input name="item_name_1" type="hidden" value="..." />
...
<input alt="" src="https://sandbox.google.com/checkout/buttons/buy.gif?merchant_id=..." type="image" />
</form>

所以,我该怎么加? (如果可能的话,我想做到这一点通过ASP.Net代码。)

我尝试添加onclick="Button1_Click" ,但没有奏效。

Answer 1:

如果这是谷歌Checkout的,你应该考虑使用现有的谷歌Checkout的NET库 。

虽然上述建议将工作,这样做的正确的(安全)的方式被记录在这里 。 该XML替代(签约)是在这里 ,其中一个让你做一个直接的表单POST到谷歌在一个安全的方式。

通过客户端方式提交总会让你容易受到篡改 - 这将使相差不大(安全明智)不只是做一个基本的HTML表单提交给谷歌。


更新日期

... 不支持现在买 ...

在一天结束的时候,有两件事情,使“BUY NOW”从任何其他“购物车”提交的不同:

  1. 图片
  2. 单个项目购买了立即购买(与一个或多个其他实现)。

看到这个从.NET库示例代码 。 它应该给你所有你需要....


更新2:

有没有什么“刚性”关于库。 你不必在它使用的一切 - 你甚至可以只取已经为您创建的所有管道的优势。

简单的例子,实施立即购买,使用谷歌Checkout的NET库

Web窗体代码(C ++):

<p>Some ASP.net button:<br />
<asp:Button ID="Button1" runat="server" Text="BUY ME NOW" onclick="Button1_Click" /><br />

An ASP.NET Image Button using BUY NOW Image:<br />
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="https://checkout.google.com/buttons/buy.gif?merchant_id=[USE YOUR OWN MERCHANT ID]&amp;w=117&amp;h=48&amp;style=white&amp;variant=text&amp;loc=en_US" onclick="ImageButton1_Click" />

在这一点上,这是你在你的浏览器中看到:

代码(内嵌或代码隐藏):

using GCheckout.Checkout;
using GCheckout.Util;

....

protected void Button1_Click(object sender, EventArgs e)
{
    doSomething();
}

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    doSomething();
}

private void doSomething()
{
    /**
     * Use the correct Merchant ID and Key based on GCheckout.EnvironmentType
     * You cannot mix/match sandbox and production id or key
     */
    CheckoutShoppingCartRequest Req = new CheckoutShoppingCartRequest("your_production_MID", "your_production_KEY", GCheckout.EnvironmentType.Production, "USD", 20);

    /**
     * Everything from this point is a copy and paste
     * from .net libary sample code
     * http://code.google.com/p/google-checkout-dotnet-sample-code/source/browse/examples/post_cart/simple.aspx
     */
    Req.AddItem("Mars bar", "Packed with peanuts", 0.75m, 2);

    //lets make sure we can add 2 different flat rate shipping amounts
    Req.AddFlatRateShippingMethod("UPS Ground", 5);

    //Add a rule to tax all items at 7.5% for Ohio
    Req.AddStateTaxRule("OH", 7.5, true);

    GCheckoutResponse Resp = Req.Send();
    if (Resp.IsGood)
    {
        Response.Redirect(Resp.RedirectUrl, true);
    }
    else
    {
        Response.Write("Resp.ResponseXml = " + Resp.ResponseXml + "<br>");
        Response.Write("Resp.RedirectUrl = " + Resp.RedirectUrl + "<br>");
        Response.Write("Resp.IsGood = " + Resp.IsGood + "<br>");
        Response.Write("Resp.ErrorMessage = " + Resp.ErrorMessage + "<br>");
    }
}

重要

以上只是示例代码来说明你可以用NET库做什么。 为了符合谷歌Checkout的实施政策,使用的ImageButton实现 -它确保您使用的是谷歌的立即购买按钮(未改变,等等)。



Answer 2:

ASP是一种服务器端脚本,所以页面加载后,你不能启动它。 该onlcick属性用于发射的JavaScript。 两个解决办法的:

  • 你可以做的是重定向到另一个页面,该页面重定向到谷歌结帐。
  • 使用JavaScript和Ajax,加载动态信息,并使用JavaScript提交


文章来源: How to subscribe to click event of html form?