0

当我将一个项目拖到列表中时,除了提交之外,将执行以下 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,第二个表单 id 为 1,依此类推(源视图):

<div id="team">
   <form accept-charset="UTF-8" action="/items/create_from_drop" data-remote="true" html="{:id=&gt;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=&gt;1}" method="post">
      ...
      <input id="group_id" name="group_id" type="hidden" value="5" />
      <ul>
          ... item list
      </ul>
   </form>
</div>

有两个问题:

  1. 首先,当下降发生时,我希望我可以触发具有相同事件的表单提交。那没有发生。
  2. 我已提交“表单:第一”。如何更改选择器以根据 id 提交表单?

谢谢你的帮助。

4

1 回答 1

2

尝试使用最接近()而不是父母,这应该只得到一个元素。除此之外,请检查表单上是否有任何 onSubmit 事件,以及问题是否与此处理程序无关。

才意识到一件事……

在 $("#group ul").droppable...

id 组的元素在哪里?

于 2012-06-22T19:09:18.267 回答