javascript - 尽管有 paymentMethodNonceReceived,Braintree 仍会自动重新加载

标签 javascript forms braintree

所以我有一个单页应用程序,以及位于注册页面上的 Braintree 插件。有一个免费帐户的选项,所以我没有将嵌入的表单作为页面的主要表单。

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

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

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

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

我真的很喜欢这个插件,并且觉得这个应该可以工作,但听起来我必须进行自定义实现。我有什么遗漏的吗?

最佳答案

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

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

而不是类似的东西

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

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

关于javascript - 尽管有 paymentMethodNonceReceived,Braintree 仍会自动重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784172/

相关文章:

javascript - 以编程方式禁用 Chrome 自动填充

javascript - 手动设置自定义验证消息时如何触发 HTML5 验证错误弹出窗口?

JavaScript - 从脚本中将值写入 html 表单

paypal - Braintree API 更新订阅

javascript - 理解 Dojo 闭包示例

javascript - 使用 jquery 设置从选择下拉列表中选择的选项

javascript - 继承DurandalJS中的常用函数

php - 如何预选表单中的下拉选项和复选框选项(PHP/MySQL)?

ruby-on-rails - 更新 Braintree 交易的订单 ID

ruby-on-rails - 如何将 braintree 与 rails 和 activemerchant 一起使用