【发布时间】: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