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自定义图片上传插件实例代码
Apr 04 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
jQuery zTree插件使用简单教程
Aug 16 jQuery
jQuery实现手风琴特效
Jan 11 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和ACCESS写聊天室(九)
2006/10/09 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
青春寄语大全
2014/04/09 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
房贷收入证明范本
2015/06/12 职场文书
小学运动会加油词
2015/07/18 职场文书