使用jQuery .submit()检索提交的表单的ID和/或名称

pnm*_*123 3 javascript forms jquery

我使用.load()加载了几个表单到不同的DIV.加载的文件类似于以下示例.

<div id="block_id-299">
  <div id="content">
    <form name="form1" method="post">
      <input type="submit" name="field1" value="Submit">
    </form>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试检索提交的表单的名称,然后使用它的值.serialize().我正在使用$('form').submit(function(){ ... }但是因为我正在动态加载表单,所以这不再起作用了.

有帮助吗?

PS:可以使用$(document).submit(function(){但是如何获取表单的名称和/或ID 来捕获事件?

Arn*_*anc 11

你可以用$().委托来做到这一点:

$(document).delegate('form', 'submit', function(event) {
    var $form = $(this);
    var id = $form.attr('id');
    var data = $form.serialize();
    // ...
});
Run Code Online (Sandbox Code Playgroud)

这甚至适用于调用delegate()后添加的表单.

这可以通过监听submit冒泡的事件来进行document,并通过测试均匀来自form元素.

这类似于$('form').live('click', ...),但最初不会执行选择器.

请参阅.delegate()和.live()文档.