2016-03-03 83 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'只是一個變量。 –