详细连接https://blog.csdn.net/a1102325298/article/details/80785143

ajax获得表单值的俩种方法

2018年06月23日 17:12:02 延迟满足 阅读数:2234
 

FormData

介绍

FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台。 在使用ajax提交时,使用FormData对象可以减少拼接queryString的工作量。同时FromData可以接收到二进制文件(可以用来做异步上传文件),serialize只能序列化简单的数据。

注意:参数

new FormData的参数是一个DOM对象,而非jQuery对象 
我们通过[index]的方法,来得到相应的DOM对象。

  1. var formData = new FormData($("#fileinfo")[0]);
  • 1

用于文件上传

form表单添加 enctype="multipart/form-data"

  1. <form enctype="multipart/form-data" method="post" id="fileinfo">
  2. <label>图片:</label>
  3. <input type="file" name="file" />
  4. <input type="submit" value="提交" />
  5. </form>

ajax中必须加入下面这俩个配置

  1. processData: false,
  2. contentType: false,
  1. var formData = new FormData($("#fileinfo")[0]);
  2. $.ajax({
  3. dataType: "json",
  4. type: "post", // 提交方式 get/post
  5. url: '/dog/saveOrUpdate.action', // 需要提交的 url
  6. data: formData,
  7. processData: false,
  8. contentType: false,
  9. success: function(data) {
  10. }
  11. });

用法

html

  1. <form id="itemForm" class="form-horizontal" enctype="multipart/form-data">
  2. <div class="form-body">
  3. <div class="form-group">
  4. <label class="col-md-3 control-label"><span class="required" aria-required="true"> * </span>流浪狗名称</label>
  5. <div class="col-md-4">
  6. <div id="input-error">
  7. <input id="dogName" name="dogName" type="text" class="form-control" value="" />
  8. </div>
  9. </div>
  10. </div>
  11. <div class="form-group">
  12. <label class="col-md-3 control-label"><span class="required" aria-required="true"> * </span>流浪狗品种</label>
  13. <div class="col-md-4">
  14. <div id="input-error">
  15. <input id="dogKind" name="dogKind" type="text" class="form-control" value="" />
  16. </div>
  17. </div>
  18. </div>
  19. <div class="form-group">
  20. <label class="col-md-3 control-label"><span class="required" aria-required="true"> * </span>流浪狗年龄</label>
  21. <div class="col-md-4">
  22. <div id="input-error">
  23. <input id="dogAge" name="dogAge" type="text" class="form-control" value="" />
  24. </div>
  25. </div>
  26. </div>
  27. <div class="form-group">
  28. <label class="col-md-3 control-label"><span class="required" aria-required="true"> * </span>流浪狗图片</label>
  29. <div class="col-md-4">
  30. <div id="input-error">
  31. <input id="file" name="file" type="file" value="" />
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="form-actions">
  37. <div class="row">
  38. <div class="col-md-offset-3 col-md-9">
  39. <button type="submit" class="btn green-jungle">提 交</button>
  40. <button type="reset" class="btn grey-salsa btn-outline">取 消</button>
  41. </div>
  42. </div>
  43. </div>
  44. </form>

ajax

  1. var itemForm = $('#itemForm');
  2. var formData = new FormData($("#itemForm")[0]);
  3. $.ajax({
  4. dataType: "json",
  5. type: "post", // 提交方式 get/post
  6. url: '/dog/saveOrUpdate.action', // 需要提交的 url
  7. data: formData,
  8. processData: false,
  9. contentType: false,
  10. success: function(data) {
  11. // 登录成功或者失败的提示信息
  12. if (data.status == 200 && data.msg == "OK") {
  13. } else {
  14. }
  15. },
  16. error: function (response, ajaxOptions, thrownError) {
  17. }
  18. });

serialize

介绍

serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。

你可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。

序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。

使用serialize前 

使用serialize后 

用法

ajax

  1. var commentId = $("#commentId").val();
  2. //获取form表单的jquery对象
  3. var commentInfoForm = $('#commentInfoForm');
  4. $.ajax({
  5. dataType: "json",
  6. type: "post", // 提交方式 get/post
  7. url: '/comment/saveOrUpdate.action', // 需要提交的 url
  8. data: commentInfoForm.serialize(),
  9. success: function(data) {
  10. // 登录成功或者失败的提示信息
  11. if (data.status == 200 && data.msg == "OK") {
  12. } else {
  13. }
  14. },
  15. error: function (response, ajaxOptions, thrownError) {
  16. }
  17. });

ajax获取值的两种方法的更多相关文章

  1. 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

    一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...

  2. JMeter接口测试-提取动态列表最后一个值的两种方法

    前言 在用JMeter做接口测试时,我们经常会遇到,一个接口返回一个json串,在这个json串中,某个节点的值是一个列表,而且这个列表的长度是动态变化的.今天我们来学习两种提取动态列表最后一个值的两 ...

  3. javascript获取属性的两种方法及区别

    javascript获取属性有两种方式,点或者中括号: var obj={} obj.x=1 console.log(obj.x)//1 第一种方式,x是字面量 try{ console.log(ob ...

  4. js获取json属性值的两种方法

    1.json.XXX 2.json["XXX"] 第二种方法使用场景,当属性值是变量时.如图所示:

  5. ajax异步提交的两种方法

    第一种是原始的ajax,第二种是在jQuery中使用ajax.这是我为测试两种提交方法而写的一段代码. 1.struts.xml <package name="json" e ...

  6. 让索引包含null值的两种方法

    1. 把有NULL值的列与一个常数,或者一个带有not null约束的列一同索引 create index ind_01 on t01(col01,1); 或者 create index ind_01 ...

  7. C# 一次循环获取树的两种方法

    第一种方法好些 第二种方法如果中间断开就会成为一级 private static List<Menu> MenuTree() { , ParentId = , Name = "a ...

  8. Selenium获取input值的两种方法:WebElement.getAttribute("value")和WebElement.getText()

    在页面元素的定位中,有时候需要获取到元素的页面显示值,用来作为断言.例如,我需要获取email的值"amy1111@xxx.com". <input class=" ...

  9. python获取函数参数默认值的两种方法

    1.使用函数的__defaults__魔术方法 demo: # coding=utf-8 def f(a,b,c=1): pass f.__defaults__ 输出结果: (1,) 2.使用insp ...

随机推荐

  1. 1.02-get-params

    import urllib.request import urllib.parse import string def get_method_params(): url = "http:// ...

  2. 强化学习(三)—— 时序差分法(SARSA和Q-Learning)

    1.时序差分法基本概念 虽然蒙特卡洛方法可以在不知道状态转移概率矩阵的前提下,灵活地求解强化学习问题,但是蒙特卡洛方法需要所有的采样序列都是完整的状态序列.如果我们没有完整的状态序列就无法用蒙特卡洛方 ...

  3. ASP.NET API Helper Page 创建并生成相关帮助文档

    创建API项目 修改原工程文件,该行为是为了避免和引入第三方API工程文件冲突 修改发布设置 引入需要生成文档的相关文件,将第三方API依赖的相关文件(XML文件非常重要,是注释显示的关键),复制到文 ...

  4. CPU, PSU, SPU - Oracle Critical Patch Update Terminology Update

    It all started in January 2005 with Critical Patch Updates (CPU).  Then Patch Set Updates (PSU) were ...

  5. linux普通用户提权操作

    [root@test1 ~]# vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALLzhouyu ...

  6. 【vue】vue +element 搭建项目,点击空白处关闭弹窗

    <template> <div class="step2"> <el-button @click="togglePanel($event)& ...

  7. Spring Security(十六):5.7 Multiple HttpSecurity

    We can configure multiple HttpSecurity instances just as we can have multiple <http> blocks. T ...

  8. Linux VNC安装

    cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) uname -r 3.10.0-693.el7.x86_64 VNC下载:ht ...

  9. 总结一下linux中的分段机制

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 这篇文章主要说一下linux对于分段机制的处理,虽然都说linux不使用分段机制,但是分段机制属于CPU的一个功 ...

  10. ESP8266开发综合篇第十四节(LUA)-8266作为TCP服务器,Android客户端连接,显示温湿度,控制继电器

    前几节先略过,我先补充上大部分人迫切的需求 编写Android TCP客户端  用Android Studio 先做一下界面 然后放一个输入对话框,因为没有显示出来这个控件.所以就手写 剩下的自己研究 ...