Rails 3中其他远程表单内的远程表单禁用嵌套表单

时间:2011-11-10 16:05:20

标签: ruby-on-rails-3 nested-forms remote-forms

我所拥有的是另一个remote表单中的remote表单,如下所示:

<%=form_for @myobj,:as=>:myobj,:url=>{:controller=>"my_controller",:action=>"first_action"},:remote=>true do |f|%>
   <%=form_for @myotherobj,:as=>:myotherobj,:url=>{:controller=>"my_controller",:action=>"second_action"},:remote=>true do |ff|%>
      <%=ff.submit "second"%>
   <%end%>
   <%=f.submit "first"%>
<%end%>

然后我点击第二次提交,它没有进行远程调用,它进行正常调用,导致我发生错误Missing Template因为我的操作只响应JS(Ajax调用)

1 个答案:

答案 0 :(得分:3)

嵌套表单无效html。

浏览器行为未定义在这种情况下该怎么做。这就像尝试在html文档中多次使用ID一样。它通常是由document.getElementById选择的最早出现的ID,在这里您发现最外层(最早)的表单是提交的表单。

如果(至少)其中一个表单是使用javascript提交的,那么最好在其他地方创建表单并复制值,或者在提交之前移动表单元素。