如何序列化当前表单?

时间:2013-12-20 21:04:44

标签: jquery serialization

我正在使用jQuery来序列化提交按钮的形式。但是当我使用代码时,它会删除return false的效果并刷新页面。当我删除序列化代码时,它运行良好!

我正在使用它:

$('input[value=Save]').click(function () {
   $.ajax({
      url: '/ajax_requests/update_info',
      data: $(this).form.serialize(),
      success: function (data) {

      }
   });
   return false;
});

我确信在使用$(this).form.serialize()时我犯了一个错误,但我无法弄明白,也无法在互联网上搜索。

2 个答案:

答案 0 :(得分:3)

请勿绑定特定按钮的点击事件,使用表单本身的submit事件,然后您的表单将为this

$('form').submit(function (event) {
  event.preventDefault()
  $.ajax({
    data: $(this).serialize()
    ...
  });
});

如果您想使用该按钮访问表单,请参阅示例中的$(this).closest('form').serialize()

答案 1 :(得分:2)

jQuery对象没有form属性,你可以使用form获取.prop('form')但是返回的对象是DOM Element对象,使用serialize()你应该用jQuery包装它,为什么不呢:

$(this.form).serialize(),