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

时间:2011-09-01 11:45:19

标签: 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>

现在我正在尝试检索提交的表单的名称,之后使用.serialize()检索它的值。 我正在使用$('form').submit(function(){ ... },但由于我正在动态加载表单,因此不再适用。

任何帮助?

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

4 个答案:

答案 0 :(得分:10)

您可以使用$()。delegate:

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

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

这可以通过监听冒泡到submit的{​​{1}}事件,并测试偶数是否来自document元素来实现。

这与form类似,但最初不会执行选择器。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

  <script type="text/javascript">
  $(document).ready(function () {

    $('.create-btn').click(function(){
      alert(this.form.id);

       }) ;

  });