2013-05-06 54 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; 
} 

我沒有測試它的個人,但它應該做的正是你需要