2014-03-04 80 views
0

最近,我在我的項目中使用easy_captchahttps://github.com/phatworx/easy_captcha)。Easy_captcha自動刷新

我有一個註冊頁面,並且驗證碼被放置在這個頁面中,當用戶輸入一個用戶名,我會發送一個ajax post請求,如果此用戶名已被簽名。

但是當我提交表單時,我被告知驗證碼已過期。

我發現,當我發送一個post請求時,captcha會刷新,但是爲什麼?我該怎麼辦?我無法讓用戶再次手動刷新驗證碼以提交註冊表單。

回答

0

您應該在ajax請求後重新加載captcha標記。嘗試重新加載控制器中的驗證碼並在您提交ajax請求時將其傳回。實際提交之前,您基本上都會刷新驗證碼。

在你的控制器:

respond_to do |format| 
    render :json =>{:captcha =>"<p>#{valid_captcha?(params[:captcha]) ? 'valid' : 'invalid' } captcha</p>"} 
end 

然後設置HTML是

$.post("ajax/test.html", function(data) { 
    $(".result").html(data['captcha']); 
}); 

它很難給出一個很好的例子,沒有代碼去雖然