【问题标题】:adding the 'custom' hidden field to simplecart (paypal)将“自定义”隐藏字段添加到 simplecart(贝宝)
【发布时间】:2013-05-06 20:07:40
【问题描述】:

我想使用“自定义”隐藏表单字段将一些自定义数据发送到 Paypal Checkout。当不使用 SimpleCart.js 时,这就像将其附加到 html 表单一样简单:

<input type="hidden" name="custom" value="My Custom data">

知道如何使用 simplecart 实现相同的目标吗?

查看源代码,我可以看到创建/提交表单的位置。

generateAndSendForm: function (opts) 
{
    var form = simpleCart.$create("form");
    form.attr('style', 'display:none;');
    form.attr('action', opts.action);
    form.attr('method', opts.method);
    simpleCart.each(opts.data, function (val, x, name) 
    {
        form.append(
            simpleCart.$create("input").attr("type","hidden").attr("name",name).val(val)
        );
    });
    simpleCart.$("body").append(form);
    form.el.submit();
    form.remove();
}

所以,我可以修改此代码以使其正常工作,但我确信一定有更好的方法。有人有什么想法吗?

【问题讨论】:

    标签: javascript simplecart


    【解决方案1】:

    在简单的购物车中添加任何额外的东西需要添加一个简单的类...

    例如,

    <input type="hidden" name="custom" value="My Custom data" class="item_customdataname">
    

    注意我的班级和命名法。 “item_customdataname”。

    但是,由于 simplecart 的性质,我推荐以下内容;

    <span style="display: none;" class="item_customdataname">My Custom data</span>
    

    并不是说使用隐藏输入不起作用......

    E

    【讨论】:

    • 第二种隐藏跨度的方法有效,但第一种隐藏输入的方法不起作用——自定义数据根本不发送(我使用的是 SendForm 结帐)。你知道为什么吗?
    【解决方案2】:

    旧线程,但对其他人可能很有趣。 您正在查看错误的方法:

    generateAndSendForm:

    用于生成一个表单,该表单将(很可能)将数据发布到您的后端

    你想看的是:

    simpleCart.extendCheckout({
      PayPal: function (opts) {
      [...]
    

    你可能想添加:

    if (opts.custom) {
      data.custom = opts.custom;
    }
    

    通知等价物之后的某处:

    if (opts.notify) {
     data.notify_url = opts.notify;
    }
    

    我没有亲自测试过,但它应该完全符合您的需要

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-24
      • 2015-09-11
      • 2017-12-20
      • 2011-12-29
      • 1970-01-01
      • 2021-05-16
      • 2017-05-08
      • 2013-08-27
      相关资源
      最近更新 更多