2013-05-06 35 views
0

我想使用'custom'隐藏表单字段将一些自定义数据发送到PayPal Checkout。当不使用SimpleCart.js,这是因为这个附加的HTML表格一样容易:将'custom'隐藏字段添加到simplecart(paypal)

<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(); 
} 

所以,我可以修改这个代码,使其工作,但我相信那里肯定有更好的方法。有人有主意吗?

回答

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> 

不是说使用隐藏的输入是行不通的......

Ë

+0

第二种方式与藏跨度的作品,但第一个采用隐藏式输入不 - 自定义数据根本不发送(我正在使用SendForm结帐)。你知道为什么吗? – 2016-11-11 17:42:35

0

旧线,但可能对别人感兴趣。 您正在寻找在错误的方法:

generateAndSendForm:

用于生成将(最有可能),POST数据到后端

你想要什么要看到的是一种形式:

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

,你可能需要添加:

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

等价的通知后某处:

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

我没有测试它的个人,但它应该做的正是你需要