1  easyui form提交

$('form').form('submit',{url:'';onSubmit:'';success:function(data){//这种方法获取到的data是字符串的形式,需要将数据进行转化方可利用其内部的数据data=JSON.parse(data);if(data.result){} }
})            

提交的数据是利用jquery 中的serialize()方法,将表单中的数据转化为请求字符串的形式,我们可以使用$('form').serialize();来查看要提交的数据;

但是在此过程中一定注意若表单中有类似textarea的控件 ,且在输入域中输入了空格,获取到的参数信息会转化为‘+’号(par1=other&par2=-1&par3=sss+fffff++ffff)

是因为URL规范里就是要求空格在query string里被编码为加号吧

详见(https://en.wikipedia.org/wiki/Query_string#URL_encoding)

注:类似于$().serialize() 方法还有 $().serializeArray 和$().param(arr)方法,可以查看jquery手册学习

  $("#results").append( "<tt>" + $("form").serialize() + "</tt>" );

2  formData提交

新建FormData对象时有两种方将数据加载到实例对象中,其中之一是利用FormData对象的append方法,其二是将form表单元素作为参数传递到FormData构造函数内;如下:

    (1) var fd =  new FormData(); fd.append("username", "Groucho");// fileInputElement中已经包含了用户所选择的文件fd.append("userfile", fileInputElement.files[0]);(2) var formData = new FormData(form);  //内部form值需要时js原生对象

针对formdata需要注意两点:
1 想要查看FormData对象内部的值时 需要使用方法entries()(对于ie8及以下存在兼容性问题 解决方法详见https://segmentfault.com/q/1010000007439070?_ea=1345861) ;
2 form表单元素想要传递文件需要加入Multipart/form-data
  var i = formData.entries();i.next(); i.next();
//或者下面是等效的for(var item of formData.entries()){console.log(item[0]+','+item[1]);}

利用formdata进行图片文件上传时 ,当图片文件 为空时 ,会传入一个文件流,后台可能没有办法判断该数据是否为空,这就需要前端验证空参数时不传对应值
可以利用formdata一项一项添加来修改上面的小bug
 var fd = new FormData();var postTitleVal = $('#titleId').val();var imgfileVal = $('#imgfile')[0].files;var postContentVal = $('#body_text').val();fd.append("postTitle",postTitleVal);
//注意下面的添加图片,当为多个时,一定要一个一个进行添加,否则不会正确的传值,如下面的图片所示for(var i = 0;i < imgfileVal.length;i++){fd.append("imgfile",imgfileVal[i]);}fd.append("postContent",postContentVal);return fd;

当多图片时不进行一个一个添加时会显示下面的结果,传给后台的是一个不能识别的object

------WebKitFormBoundarye3BrkT7fRq8QF9FFContent-Disposition: form-data; name="imgfile"[object FileList]当直接用var fd = new Formdate()时,有图片有选择时如下可以正常的进行传输------WebKitFormBoundaryv1LffBUkzjtPjHxQ
Content-Disposition: form-data; name="imgfile"; filename="Koala.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryv1LffBUkzjtPjHxQ
Content-Disposition: form-data; name="imgfile"; filename="Lighthouse.jpg"
Content-Type: image/jpeg当不选图片时(即空参数),会传入一个 文件流,后台可能没有办法判断该数据是否为空,可能会造成页面图片显示空白的bug
------WebKitFormBoundaryABIeO4Mf7StP4CdB
Content-Disposition: form-data; name="imgfile"; filename=""
Content-Type: application/octet-stream

详见:
https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects
https://segmentfault.com/a/1190000006716454#articleHeader11
详见  http://blog.csdn.net/xiaojianpitt/article/details/6856536
form表单元素想要传递文件一定注意需要加入Multipart/form-data

总结:上传数据格式常用的有:

1 请求字符串 name=value&age=3的形式;

   2 json对象形式;

   3 formData对象格式;

当然也可以有其他类型,详见http://www.cnblogs.com/haitao-fan/p/3908973.html

https://developer.mozilla.org/en-US/docs/Web/API/FormData/entries

转载于:https://www.cnblogs.com/xhliang/p/7732261.html

easyui form提交和formdata提交记录,查看FormData对象内部的值相关推荐

  1. EasyUI Form提交后json数据IE上需要下载(转)

    EasyUI Form提交后json数据IE上需要下载(转) 在使用EasyUI的form中的submit方法时,返回json在IE中变成提示下载的问题,代码如下: $('#fileForm').fo ...

  2. git 查询提交明细_Git [提交记录查看、提交、变基](I)

    查看提交记录 终端命令 git log:列出历史提交记录; 记录查看 git log --oneline:查看历史记录的简洁的版本; 简洁记录查看 提交 提交规范 feat: 新功能 fix: 修复问 ...

  3. post传值php取不到数据,post请求中的参数形式和form-data提交数据时取不到的问题...

    @Controller 页面form表单请求时不会丢数据 返回json数据时需要加 注解@ResponseBody 请求格式如下 @ResponseBody public Object login(S ...

  4. Java入力项目无法设定到form_html中关于form与表单提交操作的资料集合

    原标题:html中关于form与表单提交操作的资料集合 这里我们介绍一下form元素与表单提交方面的知识. form元素 form元素的DOM接口是HTMLFormElement,继承自HTMLEle ...

  5. GIT项目管理工具(part4)--提交文件暂存记录及同步文件至本地仓库

    本系列BLOG为鄙人学习GIT时的学习笔记.前一个知识点引出后一个知识点,后一个例子接着前一个例子. 文章目录 基本操作 3.将工作内容记录到暂存区 4.取消文件暂存记录 5.将文件同步到本地仓库 举 ...

  6. form提交php怎么接收不到,php form表单post提交获取不到数据,而使用get提交能获取到数据 的解决办法...

    开发环境:xampp,mac,phpstorm 其实出现这个问题的原因就是在于phpstorm,它默认使用的是自带的内部服务器,这个服务器使用63342端口,而且服务器内部有问题,导致POST方法异常 ...

  7. .form文件_含文件上传的form表单AJAX提交小结

    最近在学习PHP时,遇到不知道如何含文件上传的form表单AJAX提交,现在把这些记录下来以备自己后续复习时用: HTML代码 *姓名: *性别: {eq name='list.sex' value= ...

  8. Form表单之get提交与post提交

                                     Form表单之get提交与post提交 Form表单的属性action 与method:   属性           值      ...

  9. form表单同时提交带文本和图片的数据

    方法一:使用ajax异步提交 此种方法的好处是可以回调响应结果. html代码: <form action="${basePath}/save" method="p ...

最新文章

  1. 修改类的命名空间引发的发布问题
  2. springboot使用webjars引入jquery
  3. 二级路由dhcp关闭连不上wifi_酒店网络故障:原来还与DHCP服务器有关
  4. python scratch unity_Unity3D研究院之2D游戏开发制作原理(二十一)
  5. 装配图位置偏转怎么调整_物理微课|匀变速直线运动、电容器动态分析及磁偏转技巧、方法、模型...
  6. android assets 文件夹 复制,Android 中 Assets目录下 文件或文件夹的复制
  7. mysql连接查询on_MySql 连接查询中 on 和 where 的区别
  8. java基础面试题之:switch的参数类型
  9. iOS基础 - UIDynamic
  10. 有/无外网情况下linux安装宋体
  11. eNSP华为基本配置命令
  12. 视频怎么转换html代码实现,音视频格式转换神器与html视频元素加字幕——零基础自学网页制作...
  13. 基于Tensorflow Object Detection API 的哆啦A梦检测
  14. 如何玩转私域引流?全链路拆解经典玩法和实战案例
  15. 怎样建网站?(超详细)
  16. 关闭笔记本电脑自带键盘
  17. 微信小程序点击获取昵称头像
  18. Camera ITS当中的gain/shutter组合测试
  19. Linux_day02
  20. 使用js格式化json

热门文章

  1. spring in action小结4.1
  2. 条件语句练习-比分预测
  3. hdu5126stars
  4. 以交互方式安装ESXi 6.0
  5. 三元运算 三个数取最大的
  6. NOCOUNT如何影响ADO.NET(SET NOCOUNT ON的性能问题)
  7. navigating the online library
  8. ai入门视频,亲测有效
  9. permute是最好的Mac上面的格式转换器
  10. asp.net开源工作流CCFlow的下载与安装