2011-12-21 29 views
0

在我的主頁上,我有一個提交給搜索控制器的搜索表單。在同一頁面上,我有另一種註冊提交給資源控制器的新資源的表單。資源表單呈現爲部分內容,form_for標記位於部分內部。如果驗證成功,一切正常,但如果驗證成功,並且表單使用jQuery重新展現,資源表單上的提交按鈕不再提交給資源控制器,而是提交給搜索控制器。這是因爲form_for屬性是在最初呈現頁面時加載DOM時設置的?有沒有辦法做到這一點?有沒有像.live()這樣的函數可以用在這種情況下?使用jQuery在Rails中使用另一個控制器在頁面上呈現部分表單

這裏是最初是如何的部分呈現在搜索/ index.html.erb文件:

<div id="new_resource_form" style="display:block"> 
    <%= render "resources/resource_form" %> 
</div> 

這是resource_form的部分的部分的form_for:

<%= form_for @resource, :url => {:controller => 'resources', :id => @resource.id }, :remote => true do |f| %> 

jQuery的使用重新部分是這樣的:

$('#new_resource_form').html('<%= escape_javascript raw render 'resources/resource_form' %>') 

回答

0

當你點擊一個提交按鈕時點擊事件泡泡,直到它到達周圍的表單並且表單提交 - 提交按鈕實際上不會「指向」任何東西。所以聽起來好像你遇到的問題是,當表單重新呈現時,html會將提交按鈕放置在資源表單之外並位於搜索表單內。瀏覽器試圖解決的模板html中是否有錯誤?

+0

謝謝!我會研究一下。在問題中將「點」改爲「提交」。 – 2011-12-21 09:03:52

+0

我還沒有找到任何錯誤。我覺得非常奇怪的是,在非jQuery渲染中,當一切都很好時,模板中應該會出現錯誤。 – 2011-12-21 21:28:01

+0

我發現了錯誤。謝謝! – 2011-12-31 13:39:38

相關問題