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%>

しかし、2番目の送信をクリックすると、リモート呼び出しは行われません。通常の呼び出しを実行すると、アクションが(Ajax呼び出し)Missing Templateにのみ応答するため、エラーが発生します。JS

4

1 に答える 1

3

ネストされたフォームは無効なhtmlです。

このような場合、ブラウザの動作は未定義です。これは、HTMLドキュメント内でIDを複数回使用しようとするようなものです。これは通常、document.getElementByIdによって選択されるIDの最も早いオカレンスであり、ここでは、最も外側の(最も早い)フォームが送信されているフォームであることがわかります。

(少なくとも)フォームの1つがjavascriptで送信されている場合は、フォームを別の場所に作成して値をコピーするか、送信する前にフォーム要素を移動することをお勧めします。

于 2011-11-11T02:30:05.823 に答える