$("#form1"). serialize()提交表單


一、jQuery ajax()使用serialize()提交form數據

jQuery的serialize()方法通過序列化表單值,創建URL編碼文本字符串,我們就可以選擇一個或多個表單元素,也可以直接選擇form將其序列化,如:(name 屬性需要填寫)

<form id="form1">
            <input type="hidden" value ="${topicInfo.id}" name="id" id="id" />
            <input type="hidden" value ="${topicInfo.status}" name="status" id="status" />
</form>
$(document).ready(function(){
});

可以把序列化的值傳給ajax()作為url的參數,輕松使用ajax()提交form表單了,而不需要一個一個獲取表單中的值然后傳給ajax(),舉例如下:

后台如果接收值為null,把contentType: "application/json"去掉(content-Type定義的是發送至服務器的數據類型,data-Type定義的是服務器返回的數據)

$.ajax({
    type: 'post',
    url: 'your url',
    data: $("#form1").serialize(),
    dataType:"json",
    async:true,//默認異步,false-同步
    success: function(data) {
        // your code
    }
});

 

$("#form1"). serialize()后台獲取不到表單中屬性為disabled的元素的值的解決辦法

當屬性設置為"disabled"時,提交表單時,select的值無法傳遞,提交前移除disabled屬性$("#conferenceType").removeAttr("disabled"); 即可

 ajax返回狀態為200但進error方法的問題:

可能原因:

1、Ajax請求data:{}參數中,格式存在錯誤

2、服務返回的數據不是json格式

3、跨域請求

二、serializeArray()讀取form表單中的所有數據列表

var siginList =  $('#siginForm').serializeArray();
    var sigin = {};
    var siginArray = [];
    for (var i = 0; i < siginList.length; i++) {
        if (siginList[i].name == "siginUserId") {
            sigin = {};
            sigin.siginUserId = siginList[i].value;
            continue;
        }
        if (siginList[i].name == "attended") {
            sigin.attended = siginList[i].value;
            continue;
        }
        if (siginList[i].name == "reason") {
            sigin.reason = siginList[i].value;
            siginArray.push(sigin);
            continue;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM