1. 程式人生 > >171202之ajax提交整個form表單(一)

171202之ajax提交整個form表單(一)

簡介:
ajax提交form表單在專案中經常用到,前臺無論是簡單的html、jsp或者使用了easyui框架,提交表單都會使用到ajax。

總的來說,ajax提交表單可以分為兩種,一種是無返回結果的,就是把表單資料提交給後臺,後臺處理完就完了;另一種就是返回有結果的,後臺執行成功或者失敗的資訊需要返回到前臺。

1:無返回結果的

最簡單的就是$(“#formid”).submit();直接將form表單提交到後臺。

2:有返回結果的

這種方式是使用最多的一種,因為程式的執行成功與否都需要給使用者提示,程式一般也都是多步完成的,執行完插入操作,需要發起流程,這就需要在介面上判斷成功與否。ajax本身屬於有返回結果的一類,其中的success方法就是處理後臺返回結果的。

ajax提交表單有返回結果的有兩種實現方式:
1:將form表單資料序列化

<span style="font-size:18px;">  $.ajax({  
    type: "POST",  
    url:your-url,  
    data:$('#yourformid').serialize(),  
    async: false,  
    error: function(request) {  
        alert("Connection error");  
    },  
    success: function(data)
{
//接收後臺返回的結果 } });</span>

這種方法需要注意的是form表單中的項一定要有name屬性,後臺獲取的鍵值對為key=name值,value=各項值,注意:無論是input標籤還是span標籤或者其他標籤,一定要有name屬性,沒有name屬性後臺是獲取不到該項的。

2:通過視窗查詢form提交

<span style="font-size:18px;">  // 提交表單  
  var obj = document.getElementById("xx_iframe").contentWindow;  
  obj.$("#yourform"
).form("submit",{ success :function(data){ //對結果處理 } });</span>

因為在當前介面上彈出對話方塊,然後在對話方塊上的按鈕觸發對話方塊中表單提交,對話方塊又是連結的另外的html頁面,如此通過$(“#formid”)的方式是找不到對話方塊中的form的,因此這種情況下只能使用這種方式提交表單。

另外ajax中封裝的get,post請求也都屬於有返回結果的一類。

總結:無返回結果的和有返回結果的(將form表單資料序列化+通過視窗實現form提交),form表單必須要有name屬性