2013-12-20 23 views
3

我正在使用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

jQuery对象没有form属性,你可以在使用form.prop('form')作为返回的对象是一个DOM元素对象,使用serialize(),你应该用jQuery包装它得到的,那么为什么不:

$(this.form).serialize(), 
+0

这就是我们所说的** Bingo!** :) –

3

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

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

如果你想使用该按钮来达到的形式,如在你的榜样,你会使用$(this).closest('form').serialize()

+0

使用'submit'事件可确保HTML5表单验证在表单提交前被检查。 –