2012-07-31 90 views
0

我正在處理的項目中有很多表單。jQuery.ajax:我如何輕鬆發送數據?

所有的表格都經過AJAX。

$.ajax({ 
     type: "GET", 
     cache: false, 
     url: $(this).attr("action"), 
     data: ???, 
     success: function(msg){ 
     } 
    }); 

我希望能夠攔截這些文章的,而是通過AJAX運行它們。

代碼被寫入一個將被重用的方法。

所以問題是:如何選擇所有要傳遞的數據,將其轉換爲查詢字符串並將其插入data: ???,部分。

感謝

+2

所以...你的所有表單都經過AJAX,你想通過AJAX來運行它們嗎?另外,請查看'.serialize()' – MrOBrian 2012-07-31 23:24:15

回答

2

你需要攔截submit事件。在您的<form>元素上綁定事件處理程序。遇到時,通過從該事件處理程序中返回false來停止其傳播和其默認行爲。

現在,您可以在該處理程序中創建您的.ajax()請求。要將表單數據的序列化形式創建爲查詢字符串,請在該表單上使用jQuerys .serialize()方法。

例如:

$('#myFormId').on('submit', function(event) { 
    $.ajax({ 
     type: "GET", 
     cache: false, 
     url: $(this).attr("action"), 
     data: $(this).serialize(), 
     success: function(msg){ 
     } 
    }); 

    return false; 
}); 

或者只是創建委派的事件,它可以處理所有的形式,像

$(document).on('submit', 'form', function(event) { 
});