jquery ajax异步提交表单数据的方法


Posted in jQuery onOctober 27, 2017

使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的;

处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据包括文件流的话,就需要使用 FormData对象:

不带文件的表单数据使用:var data = $(form).serialize();

带文件的表单数据使用:   var  data = new FormData($(form)[0]);

一、不带文件的ajax提交数据:

html:form表单

<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post">    
  <input type="text" name="name" placeholder="请输入名字" />
  <input type="password" name="password" placeholder="密码"/>
 </form>
<button type="button" id="submitAdd">确认</button>

jquery 异步处理

$("#submitAdd").click(function(){
    
   var targetUrl = $("#addForm").attr("action");    
   var data = $("#addForm").serialize();     
    $.ajax({ 
     type:'post',  
     url:targetUrl, 
     cache: false,
     data:data,  
     dataType:'json', 
     success:function(data){      
       alert('success');
     },
     error:function(){ 
      alert("请求失败")
     }
    })
    
 })

 

二、带文件的ajax提交数据:

 html:form表单

 有文件上传的form表单需要在<form>标签里加入 enctype="multipart/form-data"属性 :

<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post"enctype=" multipart/form-data">    
  <input type="text" name="name" placeholder="请输入名字" />
  <input type="password" name="password" placeholder="密码"/>
  <input type="file" name="avatar" />
 </form>
<button type="button" id="submitAdd">确认</button>

 jquery 异步处理

$("#submitAdd").click(function(){
    
   var targetUrl = $("#addForm").attr("action");    
   var data = new FormData($( "#addForm" )[0]);     
    $.ajax({ 
     type:'post',  
     url:targetUrl, 
     cache: false,    //上传文件不需缓存
     processData: false, //需设置为false。因为data值是FormData对象,不需要对数据做处理
     contentType: false, //需设置为false。因为是FormData对象,且已经声明了属性enctype="multipart/form-data"
     data:data,  
     dataType:'json', 
     success:function(data){      
       alert('success');
     },
     error:function(){ 
      alert("请求失败")
     }
    })
    
 })

上面是用<form>表单来构建FormData对象,如果没有<form>表单处理方式如下:

html:没有form表单

<div id="uploadFile">
 <input id="file" name="avatar" type="file"/>
 <button id="upload" data-url="/admin/upload" type="button">上传头像</button>
</div>

jquery异步处理:

$("#upload").click(function(){
    
   var targetUrl = $(this).attr("data-url");    
   var data = new FormData();
   //FormData对象加入参数
   data.append('file', $('#file')[0].files[0]); //'file' 为参数名,$('#file')[0].files[0])获取上传的文件,如果需上传多个文件,要在<input>标签加上属性multiple    
    $.ajax({ 
     type:'post',  
     url:targetUrl, 
     cache: false,    
     processData: false, 
     contentType: false, 
     data:data,  
     dataType:'json', 
     success:function(data){      
       alert('success');
     },
     error:function(){ 
      alert("请求失败")
     }
    })
    
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
jquery与js实现全选功能的区别
Jun 11 jQuery
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
jQuery实现图片简单轮播功能示例
Aug 13 jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 #jQuery
关于jQuery里prev()的简单操作代码
Oct 27 #jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 #jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 #jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 #jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 #jQuery
jquery select插件异步实时搜索实例代码
Oct 20 #jQuery
You might like
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
Prototype Template对象 学习
2009/07/19 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Python进行数据提取的方法总结
2016/08/22 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
带你认识Django
2019/01/15 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
大学生创业项目方案
2014/03/08 职场文书
房产委托公证书
2014/04/08 职场文书
师恩难忘教学反思
2014/04/27 职场文书
教师演讲稿大全
2014/05/16 职场文书
期中考试后的感想
2015/08/07 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书