Javascript 问题与「;Recurly.js“;表单生成与GWT/AJAX

Javascript 问题与「;Recurly.js“;表单生成与GWT/AJAX,javascript,ajax,gwt,recurly,Javascript,Ajax,Gwt,Recurly,我正在为GWT应用程序中的重复帐户管理构建一个用户界面。 这意味着在应用程序中的“页面”之间没有实际的浏览器导航,并且在用户实际刷新其浏览器之前,客户端DOM状态一直保持在内存中 换句话说,当用户离开账单信息“页面”时,输入元素仍然存在于内存中,并且与用户界面的可见区域分离 不幸的是,“recury.js”提供的字段在这里有些问题,因为它们似乎是为在传统框架中使用而设计的,在传统框架中,用户提交表单,然后重定向到新页面 虽然它们对于初次提交更新的账单信息(即第一次实例化“表单”)非常有效,但如果

我正在为GWT应用程序中的重复帐户管理构建一个用户界面。 这意味着在应用程序中的“页面”之间没有实际的浏览器导航,并且在用户实际刷新其浏览器之前,客户端DOM状态一直保持在内存中

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

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

虽然它们对于初次提交更新的账单信息(即第一次实例化“表单”)非常有效,但如果有人在不刷新浏览器的情况下多次重新访问屏幕,则这些字段不接受输入

我尝试了以下方法:

  • 清除循环包装div元素的内部HTML(到 提供的字段由recury.JS)绘制并调用 再次配置()
  • 第一次调用configure()后不调用它(在这种情况下,后续对页面的访问会导致无响应的输入)
有没有办法让recury.js自行重置,以便重新绘制提供的字段?或者(最好是)有没有办法将Recury配置为使用我自己的数字、日期、月份和cvv“输入”字段,而不是那些由recury.js呈现到div中的字段

多谢各位

编辑:

我发现recury.js在实例化表单后访问表单后,将其提供的账单输入的可见性设置为“可见性:隐藏”。如果我不能强制Recury重新绘制输入,那么我需要防止这种情况发生……我在recury.js中发现了一个“readyState”变量。 如果在调用“重新配置”之前将其设置回“0”,则字段会正确地重新配置自己。 这似乎解决了我的问题。

我在recury.js中发现了一个“readyState”变量。 如果在调用“重新配置”之前将其设置回“0”,则字段会正确地重新配置自己。

这似乎解决了我的问题。

您是重新创建DOM节点,还是重用它们?你能给我们看一下相关的代码吗?我正在使用相同的DOM节点。我不熟悉递归。一种解决方法是在每次显示表单时重新创建DOM节点。我不完全确定你的重用概念应该如何工作,而不会产生奇怪的副作用(正如你所看到的)。否则,请联系他们的开发团队,他们可能会帮助您。这是一个很好的建议,会尝试一下,谢谢。不幸的是,创建和附加新节点会导致与重复使用相同节点相同的行为。似乎Recurly.js不知道需要在后续调用configure()时重新绘制它们。您是在重新创建DOM节点,还是在重用它们?你能给我们看一下相关的代码吗?我正在使用相同的DOM节点。我不熟悉递归。一种解决方法是在每次显示表单时重新创建DOM节点。我不完全确定你的重用概念应该如何工作,而不会产生奇怪的副作用(正如你所看到的)。否则,请联系他们的开发团队,他们可能会帮助您。这是一个很好的建议,会尝试一下,谢谢。不幸的是,创建和附加新节点会导致与重复使用相同节点相同的行为。似乎Recurly.js不知道需要在后续调用configure()时重新绘制它们。请注意-此解决方案涉及更改Recurly.js中的设置,并且需要您自己托管该文件,而不是在页面加载时从Recurly调用它。问题是,每当Recurly更新Recurly.js时,您也必须进行更新以保持与更改的同步。我不需要滚动自定义的.js来使用此修复程序
recurly.readyState=0
在调用
recurly.configure()
之前对我有效。您不需要为此自定义javascript,“readyState”只是一个变量。从recurly 4.3.0开始,在重新初始化之前设置
readyState=0
会导致初始化失败。现在只需调用configure即可支持重新初始化。请注意,此解决方案涉及更改recury.js中的设置,并要求您自己托管该文件,而不是在页面加载时从recury调用它。问题是,每当Recurly更新Recurly.js时,您也必须进行更新以保持与更改的同步。我不需要滚动自定义的.js来使用此修复程序
recurly.readyState=0
在调用
recurly.configure()
之前对我有效。您不需要为此自定义javascript,“readyState”只是一个变量。从recurly 4.3.0开始,在重新初始化之前设置
readyState=0
会导致初始化失败。现在只需调用configure即可支持重新初始化。