【问题标题】:Braintree drop-in auto-reload despite paymentMethodNonceReceived尽管 paymentMethodNonceReceived,Braintree 自动重新加载
【发布时间】:2015-02-28 16:41:19
【问题描述】:

所以我有一个单页应用程序和一个位于注册页面上的 Braintree 插件。有一个免费帐户的选项,所以我没有将drop-in放在里面的表单作为页面的主要表单。

所以我有一个这样的表格:

<form id="payment-form">
    <div id="payment-box"></div>
    <input type="submit" tabindex="-1" style="visibility:hidden;position:absolute;"/>
</form>

我在表单上有一个处理程序来防止表单提交,并且在我的 Braintree 设置中,我定义了一个 paymentMethodNonceReceived 处理程序,但是当我触发表单时,页面会重新加载,具体取决于 url。如果你看日志,paymentMethodNonceReceived 不会被触发。

例如,我的注册网址是domain.com/#!/register,但是当表单被触发时,它会重新加载到domain.com/?#!/register,据我所知,这通常是同一页面,但不是像这样的单页应用程序。这会触发页面重新加载并重置我的所有注册字段。如果您从 url 的 ?#! 版本再次运行它,那么它会按预期工作,不会重新加载并且会触发处理程序。我不想为此在我的网址中添加?

我真的很喜欢这个插件并且觉得这个应该工作,但听起来我将不得不做一个自定义实现。我有什么遗漏吗?

【问题讨论】:

    标签: javascript forms braintree


    【解决方案1】:

    所以我不完全理解为什么会出现这个问题,但是我提交时的e.preventDefault 没有触发,因为我发送的表单是:

    $('#payment-form input[type="submit"]').click();
    

    而不是类似的东西

    $('#payment-submit').click();
    

    无论如何,第一个仍然提交表单。与布伦特里无关。

    【讨论】:

    • 你能展示一下你是如何实现js部分的吗?使用 angularjs 实现 DROPIN UI 时遇到一些问题
    • @iTenzo 提出一个新问题!我对 Angular 没有任何经验,但我相信如果你问的话,我相信你会得到答案。
    猜你喜欢
    • 2015-03-20
    • 2016-02-15
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多