0

我所拥有的是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 Calls)

4

1 回答 1

3

嵌套表单是无效的 html。

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

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

于 2011-11-11T02:30:05.823 回答