2013-12-20 51 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表單驗證在表單提交前被檢查。 –