2012-12-12 81 views
0

我使用Ajax發佈數據的表單如下。rails form_tag不提交

<%= form_tag(check_answer_path, :id =>'myForm', :method => 'post', :remote => true) do %> 
    some form fields here... 
<%= submit_tag('Next', :class => 'btn btn-primary') %></td> 

但是當我點擊下一步按鈕時,表單不會提交。令我驚訝的是,當我刪除:id和:remote屬性時,表單提交沒有問題(但是頁面重新加載了我不想要的內容)。

目標:我想使用ajaxForm()提交表格來處理回撥,即$("#myForm").ajaxForm()。所以我需要:remote屬性,我還需要識別我的表單(使用:id屬性)。

爲什麼我的表單不包含:id:remote屬性?

我正在使用rails 3.2.8和jquery-rails。

在此先感謝。

回答

2

將遠程添加到表單標記意味着它將使用JS發送請求。

所以它實際上是提交表單,但它並沒有以預期的方式提交。 在你的控制器中添加以下內容:

respond_to do |format| 
    format.js 
    format.html 
end 

,你將能夠對這一要求的地方迴應file.js.erb在你的意見,並把所需的js代碼來完成請求。

希望有所幫助。

+0

我喜歡這個答案。讓我們看看它是否能解決這個傢伙的問題。 –

+0

@AlSayed Gamal是的我認爲這是我需要的,但是我的股票在這裏。如果用戶點擊下一步,我想通過ajax提交表單,並且響應將是一個html表單,即我想再次顯示錶單。它的網絡考試應用程序正在開發中,所以如果用戶點擊下一個,我會提交表單(通過ajax)並在下一個問題中再次顯示錶單。所以我將這個<%= redirect_to exam_question_path(@exam,@next_question)%>放在我的show.js.erb中以重定向到下一個問題。但它不起作用 – alfu

+0

redirect_to在視圖中不起作用,它只在控制器中起作用。您可以使用javascript重定向: location.href =