$("#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;
        }
    }

 

posted on 2018-04-17 16:30  LJD泊水  阅读(19221)  评论(0编辑  收藏  举报