項目をリストにドラッグすると、送信を除いて次の jQuery が実行されます。
jQuery:
...
$( "#group ul" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function( event, ui ) {
// ****** THIS WORKS
$( "<li></li>" ).text( ui.draggable.text() ).appendTo( this );
// ****** THIS IS NOT EXECUTING
$(this).parents('form: first').submit();
return false;
}
...
団体ごとに様式があります。最初のフォーム ID は 0、2 番目のフォーム ID は 1、というようになります (ソース ビュー)。
<div id="team">
<form accept-charset="UTF-8" action="/items/create_from_drop" data-remote="true" html="{:id=>0}" method="post">
...
<input id="group_id" name="group_id" type="hidden" value="3" />
<ul>
... item list
</ul>
</form>
<form accept-charset="UTF-8" action="/items/create_from_drop" data-remote="true" html="{:id=>1}" method="post">
...
<input id="group_id" name="group_id" type="hidden" value="5" />
<ul>
... item list
</ul>
</form>
</div>
2 つの問題があります。
- まず、ドロップが発生したときに、同じイベントでフォームの送信をトリガーできることを望んでいました。それは起こっていません。
- 「form:first」を送信しました。IDに基づいてフォームを送信するようにセレクターを変更するにはどうすればよいですか?
ご協力いただきありがとうございます。