尽管有 paymentMethodNonceReceived,Braintree 自动重新加载
Braintree drop-in auto-reload despite paymentMethodNonceReceived
所以我有一个单页应用程序,并且在注册页面上有一个 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
。
例如,我的 url 用于注册的是 domain.com/#!/register
但是当表单被触发时,它会重新加载到 domain.com/?#!/register
我知道这通常是同一页面,但不是像这样的单页应用程序。这会触发页面重新加载并重置我所有的注册字段。如果您从 url 的 ?#!
版本再次 运行 这一次,那么它会按预期工作,不会重新加载并触发处理程序。我不想为此添加 ?
到我的 url。
我真的很喜欢这个插件,感觉 应该 工作,但听起来我将不得不进行自定义实现。有什么我想念的吗?
所以我不完全理解为什么会出现这个问题,但是我提交的 e.preventDefault
没有触发,因为我发送的表单包含:
$('#payment-form input[type="submit"]').click();
而不是像
$('#payment-submit').click();
无论如何,第一个仍然提交表单。与布伦特里无关。
所以我有一个单页应用程序,并且在注册页面上有一个 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
。
例如,我的 url 用于注册的是 domain.com/#!/register
但是当表单被触发时,它会重新加载到 domain.com/?#!/register
我知道这通常是同一页面,但不是像这样的单页应用程序。这会触发页面重新加载并重置我所有的注册字段。如果您从 url 的 ?#!
版本再次 运行 这一次,那么它会按预期工作,不会重新加载并触发处理程序。我不想为此添加 ?
到我的 url。
我真的很喜欢这个插件,感觉 应该 工作,但听起来我将不得不进行自定义实现。有什么我想念的吗?
所以我不完全理解为什么会出现这个问题,但是我提交的 e.preventDefault
没有触发,因为我发送的表单包含:
$('#payment-form input[type="submit"]').click();
而不是像
$('#payment-submit').click();
无论如何,第一个仍然提交表单。与布伦特里无关。