我有一個位於Bootstrap模式內的Braintree自定義窗體。現在,如果我在表單中放置一個提交按鈕,Braintree表單可以正常工作。當我點擊提交按鈕時,Braintree會攔截它並運行提交處理程序來獲取隨機數,然後將其返回到onPaymentMethodReceived
方法。到現在爲止還挺好。但是,我想在模式底部使用一個漂亮的Bootstrap主題按鈕來提交表單,而不是在<form>
標記本身內提交按鈕。但是,如果我設置了這樣一個按鈕並給它一個$("#paymentForm").submit();
的動作,那麼似乎以傳統的方式提交它,而不是觸發Braintree的處理程序。有沒有辦法以編程方式觸發Braintree的提交處理程序?用Braintree自定義窗體以編程方式提交
3
A
回答
2
你可以做的一件事就是在窗體本身中提供一個按鈕,但隱藏它。並讓引導頁腳中的按鈕單擊真正的按鈕。這將允許Braintree的表單提交劫持正常工作。
<form id="form" method="post" action="/checkout">
<div id="payment-form"></div>
<input type="submit" style="position:fixed; top:-200%;left:-200%;" id="real-btn">
</form>
<button type="submit" id="fake-btn">Pay</button>
<script type="text/javascript" src="https://js.braintreegateway.com/js/braintree-2.27.0.min.js"></script>
<script type="text/javascript">
var clientToken = "YOUR_TOKEN_HERE";
var fakeBtn = document.getElementById('fake-btn');
var realBtn = document.getElementById('real-btn');
braintree.setup(clientToken, 'dropin', {
container: 'payment-form'
});
fakeBtn.addEventListener('click', function (e) {
realBtn.click();
});
</script>
另外,這裏有一個codepen using jQuery and Bootstrap來完成Bootstrap模式的解決方案。
該演示使用此Bootstrap modal example和pre-generated client token from the Braintree docs。它使用onPaymentMethodReceived callback來說明標記化是成功的,但如果您只想提交表單,則不需要該解決方案。
+0
這太棒了!謝謝! –
0
另一個解決方案是在按鈕點擊程序:
<form>
<div id="braintree-container"></div>
<input type="submit" style="display: none;">
</form>
<button>Pay</button>
<script type="text/javascript">
$('button').click(function() {
$('input[type=submit]').click();
});
</script>
相關問題
- 1. 以編程方式自定義樣式
- 2. Drupal7自定義窗體提交處理程序不工作
- 3. 以編程方式擴展/自定義Windows登錄提示
- 4. 以編程方式打開窗體
- 5. iPhone SDK:以編程方式提交UIWebview
- 6. 以編程方式提交表單
- 7. 以編程方式提交表單
- 8. 如何以編程方式提交SearchView?
- 9. 如何更改「editurl」並提交使用jqGrid中的編輯窗體中的自定義按鈕「編輯窗體」?
- 10. 以編程方式配置自定義實體以使用MS CRM活動源
- 11. Braintree集成 - 自定義窗體不會發送隨機數
- 12. 窗體窗體:以編程方式滾動
- 13. 以編程方式自動填寫和提交表單
- 14. 以編程方式定義XAML模式
- 15. 以編程方式從另一個窗體打開窗體窗體
- 16. 以編程方式使用自定義內容打開jquery ui工具提示
- 17. 以編程方式提交表單時阻止重定向
- 18. 以編程方式用自定義文本初始化NSTextfield
- 19. 以編程方式創建網站使用自定義模板
- 20. 以編程方式將自定義屬性應用於屬性
- 21. AngularJS:以編程方式重用自定義指令
- 22. 如何以編程方式顯示自定義用戶位置
- 23. 如何用SP2007以編程方式自定義editform.aspx/newform.aspx?
- 24. 使用自定義元素以編程方式創建網格
- 25. 用SWIFT以編程方式自定義UITableViewCell
- 26. 如何以編程方式註冊自定義URL方案?
- 27. jqGrid的自定義調用編輯模式窗體
- 28. 以編程方式刪除自定義代碼工作流程
- 29. 以編程方式定義NSSegmentedCell
- 30. 以編程方式定義UIButton快速
爲什麼布倫特裏沒有一個處理程序連接到您的按鈕? – raduation
也許會,但我還沒有弄清楚如何去做。默認情況下,至少它只攔截表單內的實際提交按鈕。 –