2016-03-03 75 views
0

我正在为GWT应用程序中的Recurly帐户管理构建一个用户界面。 这意味着应用程序中的“页面”之间没有实际的浏览器导航,并且客户端DOM状态在内存中保留,直到用户实际刷新其浏览器为止。“Recurly.js”表单生成和GWT/AJAX问题

换句话说,当用户离开帐单信息“页面”时 - 输入元素仍然存在于内存中,并且简单地从用户界面的可见区域分离。

不幸的是,由“Recurly.js”提供的字段在这里有点问题,因为它们似乎被设计用于用户提交表单然后重定向到新页面的传统框架中。

尽管它们完全适用于初始提交更新的账单信息(即第一次实例化“表单”),但如果某人在不刷新其浏览器的情况下多次重新访问屏幕,则这些字段不接受输入。

我曾尝试以下:

  • 再次清除包装的内HTML recurly div元素(入 其中提供字段由Recurly.JS画)并调用 配置()
  • 不调用配置()在第一次被调用后(在这种情况下,随后在反应迟钝输入页面结果访问)

有没有一种方法,我可以告诉Recurly.js本身复位,使塔t提供的字段可以重绘吗?或者(最好)是否有一种方法可以重复使用我自己的“输入”字段来输入数字,日期,月份和cvv,而不是通过Recurly.js呈现为div的那些字段?

谢谢

编辑:

我发现Recurly.js正在建立自己提供计费投入知名度,“能见度:隐藏”的形式之后被实例化后访问。如果我不能强制重新绘制输入,那么我需要防止这种情况发生...

+0

您是重新创建DOM节点还是重用它们?你能告诉我们相关的代码吗? – Halcyon

+0

我正在重新使用相同的DOM节点。 –

+0

我不熟悉Recurly。解决方法是在每次显示表单时重新创建DOM节点。我不完全确定你的重用概念应该如何工作,而不会产生奇怪的副作用(正如你所看到的那样)。否则,请联系他们的开发团队,他们可以帮助你。 – Halcyon

回答

3

我在Recurly.js中发现了一个“readyState”变量。 如果我在调用“reconfigure”之前将它设置回“0”,这些字段正确地重新配置它们自己。 这似乎解决了我的问题。

+0

只需要注意一下 - 此解决方案涉及更改Recurly中的设置。js并且会要求你自己托管该文件,而不是在页面加载时从Recurly调用它。 每当Recurly更新recurly.js时,您都必须更新以保持与更改保持同步。 –

+0

我不需要滚动自定义.js来使用此修复程序。调用'recurly.configure()'之前调用'recurly.readyState = 0'。 – sicks

+0

您不需要为此自定义JavaScript,'readyState'只是一个变量。 –