2011-12-02 189 views
0

我使用Ajax請求加載圖片和單選按鈕。之後,我想提交這個單選按鈕,如果我點擊<%= sg.submit'確認步驟1'%>。提交作品適用於所有形式,但不適用於Ajax的作品。哪裏不對?Ajax請求的表單未提交

信息:Ajax內容被加載到div。

視圖 - new.html.erb

<%= form_for :site, :html => { :id => "form_all" } do |sg| %> 
    ... 
    <%= sg.submit 'Confirm Step 1' %> 
    <%= sg.text_field :subject %> 
    ... 

    <div id="pics_<%= deal.DealID %>"> 
    </div 

    <%= link_to "Get pictures", {:action => "new", :format => :js }, :remote => true %> 
<% end %> 

控制器 - site_controller.rb

def new 
    respond_to do |format| 
    format.html { } 
    format.js {} 
    end 
end 

JS - new.js.erb

$("#hidden_div").html('<%= escape_javascript(render :partial => "hidden") %>'); 
var div_name = $("#hidden_field").val(); 
var substr = div_name.split('"'); 
$(substr[1]).html('<%= escape_javascript(render :partial => "pic") %>'); 

JS - application.hs

jQuery.ajaxSetup({ 
    'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
}) 

jQuery.fn.submitWithAjax = function() { 
    this.submit(function() { 
    $.post(this.action, $(this).serialize(), null, "script"); 
    return false; 
    }) 
    return this; 
}; 

$(document).ready(function() { 
    $("#form_all").submitWithAjax(); 
}) 

部分 - _pic.html.erb

<% @Pics.each do |pic| %> 
    <a href="<%= pic.PublicServerURI %>" target="_blank"><%= image_tag(("#{pic.PublicServerURI}"), :size => "100x80") %></a>          
    <input value="<%= pic.PublicServerURI %>" id="site_pics" name="pics[DealID[<%= @DealID %>]]" type="radio">Use Deal with that Picture<br> 
<% end %> 
+3

我完全不知道紅寶石,但可以發佈一些實際輸出?你還沒有發佈一個jQuery的單行... – OptimusCrime

+0

嘿你真正的輸出是什麼意思?我沒有發佈jquery,因爲它的工作是加載圖片和單選按鈕。我會添加更多細節! –

+0

真實輸出意味着html ruby​​吐出來 – Rafay

回答

0

不能嵌套form_for據我所知,因爲你不能嵌套形式的標籤。您也不應該爲每個表單使用多個提交按鈕。

我可能會嘗試像

link_to "Get pictures", new_foo_path, :remote => true 

通過響應更換內容。

+0

而如何做到這一點的工作原理與new_foo_path控制器被命名爲:網站和行動:控制器=>「網站:新 –

+0

您可以通過'直接爲它們分配」:動作=>‘新’',但如果你已經正確定義您的路線,你應該能夠使用'new_site_path'以及運行'耙routes',看看哪些助手可用,哪些被定義路線 – polarblau

+0

我使用<%= button_to「獲取圖片」:控制器=>「網站」,:動作=>「新」,:遠程=>真%>現在是瞬發我的第二個的form_for的,但它不'噸對我的作品,他重新加載頁面,不'噸得到了阿賈克斯。 –