表单 使用serializeArray获取所有:

<form id='addForm' action='UserAdd.action' type='post'><label for='uname'>用户名</label>:<input type='text' name='uname' id='uname'><br><label for='mobileIpt'>手机号:</label><input type='text' name='mobileIpt' id='mobileIpt'><br><label for='birthday'>生日:</label><input type='text' name='birthday'><br><input type='button' value='提交' onclick='addUser()'>
</form>

$('#addForm').serializeArray();
//返回数据结构,是json数组,每个对像分别name和value为key,代表这个表单元素的name和value
[{"name":"uname","value":""},{"name":"mobileIpt","value":""},   {"name":"birthday","value":""}
]

我们使用JQuery.param()方法处理一下:

var arr = $('#addForm').serializeArray();
$.param(arr);"uname=alice&mobileIpt=110&birthday=1983-05-12"

这里我们可以直接在ajax的data处填上这个json数组,在jquery内部自己调用$.param()处理的。

我们来看下jquery.param()方法的说明:

返回值:StringjQuery.param(obj,[traditional])
将表单元素数组或者对象序列化。参数
obj,[traditional]
数组或jQuery对象会按照name/value对进行序列化,普通对象按照key/value对进行序列化。
traditional:是否使用传统的方式浅层序列化。demo:
$.param({uanme:'vic',mobileIpt:'110',birthday:'2013-11-11'});
"uanme=vic&mobileIpt=110&birthday=2013-11-11"

看着说明,貌似也跟我们没关系啊,我们换一个json数组来看

$.param([{uanme:'vic'},{mobileIpt:'110'},{birthday:'2013-11-11'}]);
"undefined=&undefined=&undefined="

这个转换不成功了吧,为什么我们表单的那种数据能够成功转换成url参数呢?我们来看下jquery源码

//在ajax()方法中,对json类型的数据进行了$.param()处理
if ( s.data && s.processData && typeof s.data !== "string" ) {s.data = jQuery.param( s.data, s.traditional );
}//param方法中
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {// Serialize the form elementsjQuery.each( a, function() {add( this.name, this.value );});} else {// If traditional, encode the "old" way (the way 1.3.2 or older// did it), otherwise encode params recursively.for ( prefix in a ) {buildParams( prefix, a[ prefix ], traditional, add );}}

这下明白了吧,如果是json数据,那么挨个循环,只取他们的name属性和value属性拼接字符串。

如果是普通对象,循环该对象的属性,然后拼接字符串。

总结:

所以,本文要说的是,在jquery的ajax函数中,可以传入3种类型的数据

1.文本:"uname=alice&mobileIpt=110&birthday=1983-05-12"

2.json对象:{uanme:'vic',mobileIpt:'110',birthday:'2013-11-11'}

3.json数组:

[{"name":"uname","value":"alice"},{"name":"mobileIpt","value":"110"},   {"name":"birthday","value":"2012-11-11"}
]所以,我们可以一键获取表单并提交,非常方便。

补充:其实提取表单数据的话只需要serialize()方法直接获取"uname=alice&mobileIpt=110&birthday=1983-05-12"这样的就可以了。

转载于:https://www.cnblogs.com/dragon-L/p/4422051.html

ajax data参数相关推荐

  1. ajax data参数没有值,ajax $.get的data参数无法传递

    使用$.get方法,点击一次button获取两条数据,点击一次之后变量+1,之后把这个值传递到getajax.php页面的数据库查询语句中作为查询条件,如果把"page="+pag ...

  2. 关于Jquery中ajax方法data参数用法的总结

    关于Jquery中ajax方法data参数用法的总结 jquery手册描述: 示例: $.ajax({type: "POST",url: "some.php", ...

  3. [SpringBoot2]ajax函数中data参数的数据设置方式

    ajax函数中data参数的数据设置方式:

  4. java ajax data_jquery ajax 方法中传递的data参数,如何在java类中获取

    展开全部 var params="username="+"1"; $.ajax({ type : "POST", //数据发送方式 url ...

  5. JQuery.Ajax()的data参数类型

    JQuery.Ajax()的data参数类型 2017年9月14日:补充JQuery.Ajax()的数据类型 本文以前提到的三种类型,这三种参数本质上都是变成了类似"uname=alice& ...

  6. springMVC通过ajax传递参数list对象或传递数组对象到后台

    springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 ...

  7. django ajax传参数

    获取参数: param= json.loads(request.body.decode('utf-8')) # file_name= param["filename"] 传递参数: ...

  8. ajax传递参数给springmvc总结[转]

    通过ajax传递参数给springmvc,经常会因为 参数类型太复杂,或者根本不知道springmvc都支持哪些类型转换,导致后台接收出现各种问题.如果书写格式没有问题仍然接受参数报错,大部分是因为s ...

  9. php接收get数组参数吗,php获取到data参数,如何与数组匹配

    1.html: 推荐 全国各族人民发来贺电 2.js: $('.new-title-info-btn').mouseenter( function(){ var key=$(this).attr('c ...

最新文章

  1. 关于JVM,你需要掌握这些!!
  2. 京东css3动画全屏海报_京东超市的文案,写到吃货心坎里了
  3. windows平台python安装SciPy
  4. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc
  5. docker存储--理解镜像文件系统aufs/device mapper、主机存储共享、容器间存储共享、分布式存储Flocker
  6. Android 系统(217)---通过NITZ获取时区出错
  7. Android调用系统发送短信界面
  8. 联想服务器查看运行状态,服务器硬件批量监控工具
  9. linux防火墙 限制流量,linux – iptables和阻止可能不可能的流量
  10. 各种安装包下载地址汇总
  11. 海康威视多摄像头视频实时采集——OpenCV显示
  12. 国产数据库-达梦数据库
  13. MT8516芯片原理图资料(6MIC_RESERVE_4MIC_ARRA)
  14. 显卡a卡和n卡的区别
  15. 传教士与野人问题深度优先搜索算法(DFS)-Python实现
  16. 使用JS将table表格导出为excel
  17. 【实例】VBA excel 隔行插入行与列
  18. 案例:淘宝用户行为数据分析(SQL实现)
  19. vue中使用CSS预处理器
  20. 给女朋友的微信专属推送

热门文章

  1. hive当前日期超前_微博数仓数据延时优化方案
  2. java graphics旋转_Java图像之自定义角度旋转(实例)
  3. Windows的一些网络设置
  4. 计算机系统自带的文字处理程序,如何使用win7系统电脑的内置字符编辑程序
  5. jQuery→简介引入、jQuery类数组对象$()与DOM对象、各种选择器、attr()、html() 、text()、val()
  6. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码
  7. 电容的q值计算公式_(生活小贴士)一分钟了解“三星贴片电容的结构与材料特性”...
  8. 保存最大的前20项暴力--Heritage of skywalkert
  9. Happy Necklace
  10. 赣榆高中2021高考成绩查询,2020年连云港赣榆高考续写辉煌,各大高中“喜报”新鲜出炉...