我在UI中使用Braintree Drop,似乎它有一些bug。当付款字段中出现错误(例如信用卡号为空白)时,包含表单提交按钮被禁用,这是正常的,但是如果我修复了这些错误(例如通过输入信用卡的有效值),则提交按钮仍然被禁用。我在这里做错了吗?
我的代码很简单(使用Ruby on Rails?& HAML)
%script{"src" => "https://js.braintreegateway.com/js/braintree-2.27.0.min.js"}
:javascript
$(document).ready(function(){
braintree.setup(MY_TOKEN, "dropin", {
container: $("#payment-form"),
defaultFirst: true
});
})
答案 0 :(得分:2)
好吧我想通了:) Rails添加data-disable-with
属性来形成用submit_tag
创建的提交按钮,禁止点击提交按钮两次,所以只需使用
submit_tag "Pay", data: { disable_with: false }
http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-submit_tag
答案 1 :(得分:1)
我最终得到了这个:
将onError: enableSubmitButton
添加到braintree.setup
的初始化选项中,这是我的函数(coffeescript):
enableSubmitButton = (obj) ->
setTimeout(() ->
$('input[type="submit"]').prop('disabled', false)
, 500)
我不知道为什么,但是没有超时就行不通。我知道它不是一个超稳定的解决方案,但它在大多数情况下都有效。
仍在寻找没有超时的解决方案。