2011-03-30 45 views
0

我有一個場景,我需要在另一個Ajax窗體中包含ajax窗體,以允許用戶選擇要保存的照片。看來我需要使用form_remote_tag和link_to_remote在remote_form_for中提交它。內部的form_remote_tag現在可以工作,但現在外部的remote_form_for不起作用。這是我有:form_remote_tag in remote_form_for

<% remote_form_for [@list, @term] do |f| %>   
    <div id="upload_image" onclick="$('image_upload_form').show()">upload image</div> 
    <div id="image_upload_form" style="display:none"> 
     <div id="flickr_search"> 
      <% form_remote_tag(:url => { :controller => "images", :action => "flickr_search" }) do %> 
       <%= text_field_tag :keywords %> 
       <%= link_to_remote "save", :url => {:controller => "images", :action => "flickr_search" }, :submit => "flickr_search" %> 
      <% end %> 
     </div> 
    </div> 
    <%= f.text_area :definition, :size => "33x3", :class => "textarea", :id => "definition" %> 
    <%= f.submit "Save" %> 
    <% end %> 

任何人有任何想法,我怎麼能讓這兩種形式一起玩好?

回答

1

窗體中的表單不是有效的html,應該避免。它會給你帶來各種問題(如果你可以讓它工作的話)。

我猜你可能會用一些JavaScript/ajax代替你的內在形式,它提供了沒有形式標籤的相同功能。 (認爲​​點擊觸發的ajax請求會打開一個覆蓋窗口,它會執行您的flickr搜索,然後將圖像url置於表單中的字段中。)

您也可以考慮使它成爲兩個步驟的過程。

祝你好運

0

你不應該有嵌套的形式。
看來你想要提交text_field值的某些動作。您可以使用link_to_remote中的:with選項輕鬆實現此目的。
所以你內心的形式將被淘汰,你可以有link_to_remore寫成:

假設你正在使用jQuery

<%= link_to_remote "save", :url => {:controller => "images", :action => "flickr_search" }, :with => "'keywords='+$('#keywords').val()" %>