一、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;
}
}

随机推荐

  1. this是什么!

    this 1.js的关键字指定一个对象,然后去替代他 函数内的this    函数外的this 函数内的this指向行为发生的主体 函数外的this都指向window 2.函数内的this和函数在什么 ...

  2. 临时调用call()与apply()方法

    当在某个局域范围内要调用构造函数中或者其他局域范围内的方法 此时可以用到临时调用方法call与apply 虽然这两个方法都是起临时调用的功能,但是用法不一样 call(obj,val) obj:对象名 ...

  3. LOD,听起来很牛逼的样子

    <!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - le ...

  4. HSTS 与 307 状态码

    最近线上产品突然在 Chrome 浏览器上出现 307 状态码,并跳转到 https 版.由于 https 尚未部署完毕,导致了相当严重的后果. 但是 307 代码是什么含义呢?页面又为何会出现 30 ...

  5. fckeditor配置

    <!DOCTYPE html> <html > <head> <title>发布</title> <meta name="v ...

  6. <<操作,&0xff以及|的巧妙运用(以POJ3523---The Morning after Halloween(UVa 1601)为例)

    <<表示左移,如a<<1表示将a的二进制左移一位,加一个0,&0xff表示取最后8个字节,如a&0xff表示取a表示的二进制中最后8个数字组成一个新的二进制数, ...

  7. tcp面试题

    常见面试题[问题1]为什么连接的时候是三次握手,关闭的时候却是四次握手? 答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文.其中ACK报文是用来应答的, ...

  8. python django day 4 database

    django-admin.py startproject learn_models # 新建一个项目 cd learn_models # 进入到该项目的文件夹 django-admin.py star ...

  9. IDEA 热部署- 自动编译设置

    原文:https://www.cnblogs.com/TechSnail/p/7690829.html    &&   https://blog.csdn.net/qq_3129357 ...

  10. 【HAOI2011】 向量

    数论好劲啊 原题: 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出 ...