即使修复了UI错误,也禁用了Braintree表单提交按钮

时间:2016-07-21 11:27:55

标签: ruby-on-rails braintree

我在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
      });
    })

2 个答案:

答案 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)

我不知道为什么,但是没有超时就行不通。我知道它不是一个超稳定的解决方案,但它在大多数情况下都有效。

仍在寻找没有超时的解决方案。