一、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. synchronized(四)

    package com.bjsxt.base.sync005;/** * synchronized的重入 * @author alienware * */public class SyncDubbo1 ...

  2. fread 不能读取最后一个数据块

    今天遇到一个问题,fread()竟然不能读取文件中的最后一个数据块. 我定义了一个结构体: Persong { char name[10]; char phone[15]; } 以及两个函数: int ...

  3. Nginx 自动补全url地址补全最后的斜线

    参考地址: http://blog.csdn.net/dong123dddd/article/details/51660368 location /riskcontrol { root /data; ...

  4. 并发的HTTP请求,apache是如何响应的,以及如何调用php文件的

    作者:酒窝链接:https://www.zhihu.com/question/23786410/answer/153455460来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. linux 部署之路 修行不够全靠悟

    考虑到很多孩子不会Linux或Mysql,所以我这里提示一下, 这篇教程里 "有多行代码" 的是给你展示结果的,不用你敲 只有一行的才是要你自己敲进去的.   1.首先更新一下仓库 ...

  6. 面向对象+unittest+pytest

    date:2018512+513 day07aft+day08mor 一.面向对象编程 1.定义类,类的继承 ps:与普通函数相比,在类中定义的函数第一个参数必须是类的本身实例变量self,在调用时, ...

  7. 【Python】多进程-4

    #练习:用event事件控制进程执行顺序,下面例子中,主进程main函数在创建了子进程之后,依然会往下执行,所以会出现主进程先打印出来的情况 import multiprocessing import ...

  8. lvm创建和快照

    查看磁盘 创建分区 新建1G的1分区 新建1G的2分区 新建1G的3分区 查看新建的分区 因标准分区是83交换分区是82做lv是8e所以要改变类型 查看: 保存退出: 创建物理卷pv 将物理卷pv创建 ...

  9. Python学习笔记第十八周

    目录: 一.JavaScript正则表达式 1.test  2.exec 二.BootStrap  1.响应式  2.图标.字体  3.基本使用 三.Django 1.安装  2.创建目录  3.进入 ...

  10. Oracle中nvl()、instr()、及执行多条sql事务操作

    Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值. 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpre ...