remote_form_for中的form_remote_tag

时间:2011-03-30 01:49:55

标签: ruby-on-rails

我有一个场景,我需要在另一个ajax表单中包含一个ajax表单,以允许用户选择要保存的照片。看来我需要使用带有link_to_remote的form_remote_tag在remote_form_for中提交它。内部form_remote_tag现在可以工作,但现在外部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 %>

任何人对如何让这两种形式在一起玩得很开心?

2 个答案:

答案 0 :(得分:1)

表单中的表单不是有效的HTML,应该避免。它会引起各种各样的问题(如果你可以让它工作的话)。

我猜你可能会用一些JavaScript / ajax替换你的内部表单,它提供相同的功能而没有表单标签。 (想想点击时触发的ajax请求会打开一个覆盖窗口,进行你的flickr搜索,然后将图像url放在表单中的字段中。)

您也可以考虑将其分为两个步骤。

祝你好运

答案 1 :(得分:0)

你不应该有嵌套表格 您似乎想要为某些操作提交text_field值。您可以使用:with中的link_to_remote选项轻松实现此目的 因此,您的内部形式将被删除,您可以将link_to_remore写为:

假设您正在使用jQuery

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