2010-07-13 209 views
0

我試圖建立一個註冊頁面,分兩步。Ruby on Rails註冊數據?

第一步顯示一個名稱,電子郵件,通票。

第二步將顯示ReCaptcha。

問題是如何存儲表單數據並顯示帶有驗證碼的新表單?

我在想會議,但我知道你不應該在會議中存儲敏感信息。

我想使用Ajax渲染ReCaptcha如果名稱,電子郵件,通過..驗證。

有什麼建議嗎?謝謝。

回答

1

如果您需要一些簡單的東西,您可以使用hidden fields保留第二步中的參數。

如果您需要更復雜的事情(多個步驟,回到上一步,部分驗證等),您可以使用嚮導插件。這裏是Ruby Toolbox的一列wizard plugins

4

我的建議是,我認爲這種情況的兩種形式是不必要的複雜,除非有一些特定的應用程序需要解耦用戶名/密碼捕獲和CAPTCHA檢查。

您可能很擔心使用會話來存儲中間數據,但如果您確實想要這樣做,那麼可以通過一個很棒的屏幕錄像顯示類似應用程序here的技術。

我個人會去Javascript路線。同時加載兩個表單,步驟1可見,步驟2隱藏。通過AJAX調用驗證步驟1(如果您需要)或客戶端(如果您不需要)。如果步驟1有效,則取消隱藏步驟2表單(如果需要,也可以隱藏步驟1表單)。

更新:標記爲隱藏使用CSS,然後使用一些JavaScript在提問的要求添加進一步信息

有很多的方法來隱藏和顯示頁面內容,但常用的方法是將其包裝在一個<div>塊(例如JQuery)將其隱藏或取消隱藏。像這樣:

<div id="step2" style="display:none"> 
    <% form_for .... %> 

    <% end %> 
</div> 

當頁面首次被加載時,表單將被隱藏。然後在JQuery中(例如)做:

$(function() { 
    $('#step2').show(); 
}); 

要取消隱藏它。有關更多用法示例,請參閱showhidetoggle的文檔。

+0

如何將表單更改爲隱藏? – Brian 2010-07-13 19:59:52

1

有很多方法可以做到這一點。

railscast #217,演示了一種處理多步表單的通用方法,能夠處理棘手的事情,如前進和後退多次。看一看。