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

Retrieve submitted form's ID and/or Name with jQuery .submit()

本文关键字:ID 表单 submit jQuery 提交 检索 使用      更新时间:2023-09-26

我使用.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>

现在我试图检索提交的表单的名称,后来,它的值使用.serialize()。我使用的是$('form').submit(function(){ ... },但由于我是动态加载表单,这不再工作了。

帮忙吗?

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

你可以使用$().delegate:

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

即使在调用delegate()之后添加的表单上也可以。

这是通过监听submit事件(冒泡到document),并通过测试偶数是否来自form元素来工作的。

这与$('form').live('click', ...)类似,但不首先执行选择器。

参见.delegate().live()文档

要在提交表单时获取表单属性,我们还可以使用submit函数获取。例如:

$("form").submit(function(){
  var form = $(this);
  var id = form.attr('id');
  alert(id + ' form submitted');
});

您可以使用jQuery实时事件处理程序,它也适用于动态创建的元素。试试这个

$('form').live('submit', function(event) {
    var $form = $(this);
    var formName = $form.attr('name');
    var formData = $form.serialize();
    // ...
});

下面的代码将提醒具有'create_btn' css的按钮的表单id,您也可以通过id访问它,如果您想通过将(.create-btn)点更改为散列(#create-btn),您可以使用。click或。submit代替。

  <script type="text/javascript">
  $(document).ready(function () {
    $('.create-btn').click(function(){
      alert(this.form.id);
       }) ;
  });